版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42528266/article/details/102871377
image要求是已经存在的镜像,我们也称为基础镜像.必须是第一条非注释指令
指定镜像的作者信息,包含镜像的所有者和联系信息.
RUN <command> (shell模式)
/bin/sh -c command
RUN echo hello
RUN [“executable”,”param1”,”param2”] (exec模式)
RUN [“/bin/bash”,”-c”,”echo hello”]
每个RUN命令都会在当前镜像的上层创建一个新的镜像来运行指令.
示例:
docker run -p 80 --name cmd_test1 -itd lanxw0720/df_test3
docker top cmd_test1
示例:
docker build -t="lanxw0720/df_test4" .
docker run -p 80 --name ep_test1 -d lanxw0720/df_test4
docker ps -l
示例:
docker build -t="lanxw0720/df_test6" .
docker run -p 80 --name add_test1 -d lanxw0720/df_test6
curl http://127.0.0.1:32775
用于基于镜像创建的容器添加卷,一个卷可以存在一个或者多个容器的特定目录.这个目录可以绕过联合文件系统.提供共享数据和持久化数据的 功能.(后面单独讲)
WORKDIR /path/to/workdir
WORKDIR /a
WORKDIR b
WORKDIR c
RUN pwd
*结果====>/a/b/c*
ENV <key><value>
ENV <key><value>...
USER daemon
ONBUILD [INSTRUCTION]
示例:
docker run -p 80 --name onbuild_test1 -d lanxw0720/df_test7
curl http://127.0.0.1:32776
docker build -t="lanxw0720/df_test8" .
docker run -p 80 --name onbuild_test2 -d lanxw0720/df_test8
curl http://127.0.0.1:32777
docker build会删除中间层创建的容器,但是不会删除中间层创建的镜像.我们可以使用docker run 的方式来运行中间层镜像.从而查看每一步创建后的镜像的实际状态,这就给了我们调试镜像的能力. docker会把之前创建过的中间层镜像建立成缓存,第二次构建的时候其实就直接中缓存中拿到中间层的镜像.但是有些时候我们不想使用缓存.
docker build --no-cache