使用Dockerfile定制镜像流程笔记

Dockerfile定制镜像

1. 创建文件夹,并在文件夹里创建名为Dockerfile 的文件
2. 在Dockerfile里写构建镜像的语句
关键字 作用
FROM 指定基础镜像
MAINTAINER 维护者的信息
RUN 执行什么命令
EXPOSE 声明容器对外服务的端口
WORKDIR 指定工作目录
ENV 配置环境变量
ADD 将文件拷贝到镜像中并解压
COPY 将文件拷贝到镜像中
VOLUME 配置数据卷
CMD 容器启动时候执行的命令
ENTRYPOINT 容器启动时候执行的命令

编写Dockerfile文件注意点

FROM ubuntu:18.04                        #指定基础镜像,这一句必须要有
MAINTAINER  Evan_Tang@admin.com          #维护者信息(可以不写)
RUN apt-get install -y vim               #执行 apt-get install -y vim 命令,安装vim
RUN apt-get install -y net-tools         #执行 apt-get install -y net-tools, 安装net-tools工具
WORKDIR /dev/                            #启动容器后,如果启动交互模式,直接进入到哪个目录
CMD ["/bin/bash"]                        #启动容器的时候,进入到/bin/bash这种命令行
  • FROM 表示指定基础镜像 >如果没有基于镜像则用scratch表示

  • RUN 表示运行命令 可以使用shell格式或者使用exec格式

    • shell格式:RUN 后面直接接命令。
    • exec 格式:RUN ["可执行文件", "参数1", "参数2"]
  • COPY 原路径 目标路径 将上下文的路径的文件复制一份到新镜像的目标路径

  • ADD 和COPY基本一样 如果拷贝压缩文件 ADD命令会进行解压(会令构建镜像缓存失效不推荐使用,尽可能使用COPY)

  • CMD和ENTRYPOINT 都用是启动命令都只能有一个生效,最后出现的生效,
    如果同一个Dockerfile文件同时出现CMD和ENTRYPOINT,CMD在前ENTRYPOINT在后 CMD无效,如果ENTRYPOINT在前CMD在后,CMD可能无效而被当作ENTRYPOINT的参数

FROM ubuntu:18.04                      
MAINTAINER  Evan_Tang@admin.com  
RUN mkdir -p /datas/ 
ENTRYPOINT ["echo", "hello"]
CMD ["world"]                           #会将world作为echo hello的参数,最后的命令其实为echo hello world 
  • ubuntu镜像默认的CMD是/bin/bash,如果我们直接docker run -it ubuntu的话,会直接进入bash,可以在运行时用cat 路径/文件名指定运行别的命令

  • ENV用于设置环境变量 ENV <key> <value>

  • VOLUME用于设置数据卷 VOLUME <路径>

  • EXPOSE 声明提供服务的端口并不会开启这个端口 EXPOSE <端口1>

  • WORKDIR 用于指定工作目录,如果目录不存在会建立目录

  • Dockerfile中的每一个指令都会建立一层,所以在编写RUN >时我们需要考虑进行RUN合并减少RUN的条数

  • \ 表示换行 && 用于连接两条语句

  • 每层构建后需要清理掉无用的东西,减少构建的镜像体积

  • 写完后使用 :wq 退出保存

3. 在有Dockerfile的文件目录下执行 docker build -t 镜像名:镜像标签 .(有个空格点别忘了)

构建命令中最后一个点 表示当前目录,指定上下文的路径,构建镜像时并不是在本地构建的,而是在服务端,也就是 Docker 引擎中构建的,执行构建命令时会将上下文路径下的内容打包发送到服务端执行构建

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

推荐阅读更多精彩内容