dockerfile 常用易混指令--(1)

作者: My熊猫眼 | 来源:发表于2019-08-22 21:55 被阅读6次

学会写dockerfile是我们学习docker的必经之路;在写dockerfile的时候,感觉如下命令还是需要做个记录,以备需要时方便查阅参考, 同时本着共享精神,分享笔记内容如下:
----------------------------------------------------------------------------------------------

RUN:

这个指令是在dockcer build 的时候执行的,执行的结果会commit到新的image中;常用于一次性操作,比如目标image中需要安装软件,那么用RUN这个指令;

ADD和COPY:

这个指令也是docker build的时候执行的,要注意的是:如果src是local的压缩/打包文件,比如tar, zip,bzip2,tar.gz ... , 那么会自动在目标目录解压缩,也就是unpack操作;但是如果src不是本地的文件(比如URL指定的文件),那么不会自动自动的解压等
COPY:
这个指令也是docker build的动作,但是和ADD不同的是,对于archive的处理: copy 会保证文件原来的格式,不会进行unpack的操作,而ADD对本地的文件会进行unpack.
注意ADD, COPY的区别在于对archive的处理模式不同,前者会进行unpack操作,而后者则不会,但是如果source不是本地archive,那么都不会进行unpack.

ARG和ENV:

这个指令用于添加环境变量,可以设置默认值,也可以没有默认值;
通过此方法设置的变量仅仅在docker build的时候生效,而在docker run的时候并不会生效;
如果在docker build的时候,指定了相同参数并赋值,那么会替代ARG指令所指定的参数值;
如果docker build的时候指定的参数没有通过ARG指令进行指定,那么会有WARNING信息输出;
在dockerfile中,只有ARG指令之后的行 ,对变量的引用才会用遵循ARG定义的变量;
虽然ARG指令指定的参数在docker run的时候不可见,但是在docker history 中依然可见,所以不要用ARG传递敏感信息,比如密码等;

ENV: 该指令也用于指定环境变量,该环境变量既在docker build的时候生效,也在docker run的时候生效;ENV的变量是持久存在的,如果在docker run的时候通过env参数进行指定,那么指定的值会替换dockerfile中定义的值;如果在dockerfile中没有定义,那么通过env参数使用依然不会有任何报错和警告;
当ENV和ARG有相同名字的时候,在docker build的时候,ENV的环境变量值会overwrite ARG指定的环境变量值

ONBUILD:

这个指令用于创建一个触发器,ONBUILD后面可以跟任意的 "构建image相关的指令",比如RUN,ARG,ENV...
onbuild既然是一个触发器指令,那么触发条件是什么呢?当用该docker file 构建的image 作为base image的时候,新的image build的时候就会触发,该指令就像插入在FROM 之后一样会立即得到执行;

本文属于笔记整理类的,比较基础,希望能够帮到你。

本文原创,转载请注明出处

相关文章

  • dockerfile常用易混指令--(2)

    接上一篇:<>, 本篇介绍剩余的几个基础指令: CMD: dock...

  • dockerfile 常用易混指令--(1)

    学会写dockerfile是我们学习docker的必经之路;在写dockerfile的时候,感觉如下命令还是需要做...

  • dockerfile

    在dockerfile dockerfile常用指令 FROM 指定base镜像MA...

  • Dockerfile指令

    Dockerfile文件中,除了有FROM指令和RUN指令外,还有几个比较常用的指令 1、 COTY 复制文件 格...

  • dockerfile构建镜像 && 搭建wordpress

    一,Dockerfile介绍 二,dockerfile中常用的指令 1,FROM:指定基础镜像,必须为第一个命令 ...

  • docker-02

    10:自动制作docker镜像 镜像: 中药 dockerfile: 配方 dockerfile常用指令 根据do...

  • DockerFile常用指令

    下面列出了 Dockerfile 中最常用的指令,完整列表和说明可参看官方文档。 FROM 指定 base 镜像。...

  • Dockerfile常用指令

    下面列出了 Dockerfile 中最常用的指令,完整列表和说明可参看官方文档。 FROM 指定 base 镜像。...

  • Dockerfile常用指令

    FORM 指定base镜像 MAINTAINER 设置镜像的作者,可以是任意字符串。 COPY 将文件从 buil...

  • Dockerfile常用指令

    摘自-----CloudMan 是时候系统学习 Dockerfile 了。 下面列出了 Dockerfile 中最...

网友评论

    本文标题:dockerfile 常用易混指令--(1)

    本文链接:https://www.haomeiwen.com/subject/lsaosctx.html