docker_014_dockerfile_指令!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

==========================Part 1 : building image  exe cmds==========

1.FROM 指令

 它,有两种格式

   1.1 FROM <image>

   1.1 FROM <image>:<tag>  第二参数是标签名

    <image>  这个是一个已经存在的镜像,是基础镜像。

2.MAINTAINER<name> 指定镜像的作者和联系方式

3.RUN指令

 在构建镜像文件时,执行的命令

      有两种模式

  3.1  RUN <COMMAND> 模式(shell模式)

  3.2  RUN <exec>  (exec模式)

 

=============================Part 2 : 容器 相关的命令,在 容器启动时 执行命令==========

4.CMD指令(非常重要,容器启动时

  1.检查是否是最新的程序,是否需要更新补丁

      2.启动容器的时候,是否直接启动EntgegorServer

      3.容器启动的时候,是否启动  Agent

    “容器启动”时执行的命令

      有两种模式

  4.1 CMD <COMMAND> 模式(shell模式)

  4.2  CMD <exec>  (exec模式)

5. ENTRYPOINT 指令

   它的作用和CMD一样,但是 ENTRYPOINT命令与 run命令启动时相互冲突的时候,不覆盖执行

6. CMD命令 和ENTRYPOINT 组合使用:

ENTRYPOINT  负责 执行命令

CMD               负责为ENTRYPOINT 命令提供参数

 

9.WORKDIR  用于容器内指定工作目录  。CMD 和 ENTRYPOINT  命令执行脚本,都在这个目录下

  WORKDIR   /path/to/workdir

 workdir 尽量只用绝对路径。

 

============================================================================

7. ADD 和 COPY命令,  将 文件 拷贝到 镜像 中,可以对  镜像模板进行升级

  目标文件可以是一个本地地址,也可是一个远程地址

ADD <src> ...<dest>

COPY <src> ...<dest>

区别: add 和copy的功能, add 有tar 命令,可以解压文件

 

8.VOLUME["/data"] 向基于镜像创建的容器中,增加 数据卷

 

9.EVN指令,用来设定 环境变量

  ENV KEY=VALUE

10.USER 指定执行用户 ,默认是root用户为执行用户

     USER

11.ONBUILD  触发器

    为镜像增加 触发器, 当一个镜像被用于其他镜像的基础镜像时,这个触发器会被执行。当子镜像在构建时,会插入触发器中的指令。

   例如:

          ONBUILD COPY /bin/test.sh

  然后启动容器,这个容器在启动后,进入到容器当中后会发现。目标路径中,并不会有新的文件出现。 这个指令不会出现,而是当下一次在构建镜像的时候,

子镜像在构建时,会执行该指令。

 

         镜像文件的构建技巧,

(1).   在构建的过程中,每一步执行完成后,会形成一个中间层镜像,这样的话,就可以通过中间层镜像进行进行操作调试,查找错误

(2).   构建缓存: 连续对一个dockerfile进行多次build的时候,就会 使用上次构建的中的镜像  作为本次构建的缓存。 在缓存基础上来进行构建,编译速度非常快。

       同时,我们也可以选择,不进行 镜像的构建。 docker build  --no-cache

(3).  查看镜像构建过程 docker history  <image>

 

posted on 2016-07-23 22:46  fantiejun0436  阅读(92)  评论(0)    收藏  举报

导航