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) 收藏 举报
浙公网安备 33010602011771号