镜像的定制实际上就是定制每一层所添加的配置、文件。我们把这些操作命令都写入一个脚本,用这个脚本来构建、定制镜像。这个脚本就是Dockerfile。
RUN 指令是用来执行命令行命令的。RUN指令会在前一条命令创建出的镜像的基础上创建一个容器,并在容器中运行命令。在命令结束运行后commit提交新容器为新镜像,新镜像被Dockerfile的下一条指令使用。
# shell格式 RUN <command> # 或 exec格式,非常推荐 RUN [“executable”, “param1“, “param2”]
除了从本地构建以外,docker build还支持从URL构建,比如可以直接从Git repo中构建,这里也不展开介绍了,如果你对这个感兴趣,可以查看:
https://docs.docker.com/engine/reference/commandline/build/#tarball-contexts
例如
# -t指定了镜像名为myimage,由于没有使用-f指令,所以默认使用上下文路径下名为Dockerfile的文件认为是构建镜像的“Dockerfile”。最后指定上下文路径,在这条命令中,上下文路径是.,.代表就是将当前目录设置为上下文路径 docker build -t myimage .为了避免每一条RUN指令都会新建一个镜像,所以不能为每一条命令都对应一个RUN,如下:
RUN mkdir /dir1 RUN cd dir1 RUN touch hello.txt而是应该使用&&把命令拼接起来,成为一条指令
RUN mkdir /dir1 \ && cd dir1 \ && touch hello.txt
参考:https://www.educoder.net/shixuns/zawfjtnm/challenges
软件工程小施同学 认证博客专家 学堂在线讲师 每一个伟大,都源于一个勇敢的开始(微博:“软件工程小施同学”,公号”微程序学堂“)