摘要:
RUN、CMD 和 ENTRYPOINT 这三个 Dockerfile 指令看上去很类似,很容易混淆。本节将通过实践详细讨论它们的区别。 简单的说: RUN 执行命令并创建新的镜像层,RUN 经常用于安装软件包。 CMD 设置容器启动后默认执行的命令及其参数,但 CMD 能够被 docker run 阅读全文
摘要:
下面列出了 Dockerfile 中最常用的指令,完整列表和说明可参看官方文档。FROM 指定 base 镜像。 MAINTAINER设置镜像的作者,可以是任意字符串。 COPY将文件从 build context 复制到镜像。COPY 支持两种形式: COPY src dest COPY ["sr 阅读全文
摘要:
包括 Dockerfile 在内的任何脚本和程序都会出错。有错并不可怕,但必须有办法排查,所以本节讨论如何 debug Dockerfile。 先回顾一下通过 Dockerfile 构建镜像的过程: 从 base 镜像运行一个容器。 执行一条指令,对容器做修改。 执行类似 docker commit 阅读全文
摘要:
Docker 会缓存已有镜像的镜像层,构建新镜像时,如果某镜像层已经存在,就直接使用,无需重新创建。 举例说明。在前面的 Dockerfile 中添加一点新内容,往镜像中复制一个文件: root@ubuntu:~# ls ① Dockerfile testfile root@ubuntu:~# ro 阅读全文
摘要:
用 Dockerfile 创建上节的 ubuntu-with-vi,其内容则为: 下面我们运行 docker build 命令构建镜像并详细分析每个细节。 root@ubuntu:~# pwd ① /root root@ubuntu:~# ls ② Dockerfile root@ubuntu:~# 阅读全文