docker、jenkins实践

一、docker使用背景

关于虚拟化、docker容器原理以及使用背景等,官网、各种博客技术网站有更专业的解释;

PS:个人经验,如果有实际工程实践或项目需求,能更好理解docker原理、为什么使用docker容器,学习原理对于构建镜像、运行容器有很大帮助;

二、docker安装说明

1、详细docker工具相关组件(client、engine、compose、k8s等)、版本(ce社区版、en企业版)、主流os下如何安装(包括docker版本对应宿主os版本要求):官网使用安装说明

经验、建议:

1)docker安装对操作系统有许多依赖组件,对于linux服务器,最好使用操作系统包管理安装工具,会自动关联下载依赖组件,yum、apt-get等;

2)centos环境:

3)如何验证是否安装成功:

3)遇到依赖组件版本问题,查看启动日志:

三、docker工程实践

1、Dockerfile编写、使用

1)流程:Dockerfile编写->通过Dockerfile构建image->通过image运行容器,构建时通过docker client自动send到docker engine进行处理

2)Dockerfile,构建镜像大多数情况要依赖基础层,如果本地不存在要使用的镜像,默认会从docker hub(类似GitHub)拉取镜像,此处应注意所需镜像版本tag(centos:tag),默认tag是latest,docker hub已经提供许多官方镜像,可登录查看具体镜像版本、信息等,根据需要选择;

根据需要选择设置工作目录,复制内容(文件或目录),此处COPY、ADD均可用,COPY是纯复制操作,ADD如果操作文件相当于COPY,如果是软件包,会进行COPY且解压,此时可换成COPY或者把软件包先放入一级目录下;如果操作二级目录,默认会把二级目录下的内容复制,所以如果想操作复制整个二级目录,目的路径结尾带/(/aiwandeweiss与/aiwandeweiss/此处效果不同);如果想过滤某些内容(文件或目录),可以使用.dockerignore(原理同.gitignore)进行忽略,构建时可以观察下send context内容大小

RUN尽量将相同操作的命令&&执行,这样减少镜像层次,如果是复杂镜像,关于镜像支持最大层次、层次与生成镜像大小关系是需要格外注意的

通过镜像运行的容器的expose端口可根据需要定制,正常可在运行容器时可使用-p选项进行主机端口与容器expose端口映射,这样通过访问主机端口会间接访问到容器端口

CMD启动容器时的start命令

更多Dockerfile可使用命令可详见官网或技术博客:官网Dockerfile编写说明

2、image构建

1)docker client可使用命令,终端执行docker --help,会列出支持的命令,高级用法可参见官网或技术博客,此处不做具体推荐链接

2)本人所使用的命令均为常用命令,且也在学习研究阶段,技术大牛可忽略

构建时可以用-f指定Dockerfile文件,如果已经进入本地用于构建的目录下,默认会识别当前目录下Dockerfile文件;注意后面的.(点),专业详细解释参见:构建Context

3、运行container

参数-v,允许挂载主机目录到容器内,当然在构建镜像时也可以使用VOLUME命令

4、volume卷

可以作数据持久化,动态变化内容mount等,实际工程实践用处很大,根据实际需求选择

--volume-driver可以选择Optional volume driver for the container

--volumes-from可以选择Mount volumes from the specified container(s)

5、镜像、容器空间管理

6、常用命令

四、jenkins、docker、shell

1、jenkins工程同步

job A 传递参数并触发 job B

1)首先在jenkins插件管理,安装 jenkins 参数化插件:Parameterized Trigger 

2)job A 配置中选择构建后操作Trigger parameterized build on other projects ,把要传递的参数根据需求参数化传递,job B配置中选择参数化构建,此处参数名称与job A要传递参数名称保持相同,触发job A后job B的同名参数默认会使用job A传递过来的参数,当然job B同名参数也可以设置默认值,用作job B单独构建时使用

2、shell脚本

awk用法注意:

1)所有容器列表,去掉表头,且找出特定容器名称&&属于特定镜像的容器id

docker ps -a | awk "{if (NR > 1){if (\$2 == image_n && \$NF == container_n) print \$1}}" image_n="$SPECIAL_VER" container_n="$CONTAINER_NAME"

此处,如果awk的command中需要取变量值,要用双引号,awk自身内置变量$符要用反斜杠(\)转义回取内置变量含义;从外部读入变量值要从command后读取,否则会出现变量未定义,值为0情况

sed用法注意:

1)如果要处理的内容本身带有斜杠(/),比如url,sed的命令中斜杠分隔符换成叹号分隔符(!)

----------------------------------------------------------------------------------------------------------------

PS:文章纯属个人实践随笔记录,用于学习交流,不用做任何商业用途;文内如果有错误或者不正确地方,欢迎指正,十分感谢~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335

推荐阅读更多精彩内容