Dockerfile 中的每一个命令都会创建一个新的 layer,而一个容器能够拥有的最多 layer 数是有限制的。所以尽量将逻辑上连贯的命令合并可以减少 layer 的层数,这也可以加快编译速度。
将多个可以合并的命令(RUN,EXPOSE, ENV,VOLUME,COPY)合并,比如:
EXOISE 80
EXOISE 8080
CMD cd /tmp
CMD ls==>
EXOISE 80 8080
CMD cd /tmp && lsADD命令和 COPY 命令在很大层度上功能是一样的。但是 COPY 语义更加直接,所以我们推荐尽量使用 COPY 命令。唯一例外的是 ADD 命令自带解压功能,如果需要拷贝并解压一个文件到镜像中,那么我们可以使用 ADD 命令。除此之外,我们都推荐使用 COPY 命令。
ADD 1.1.1.100:1234/jdk-8u74-linux-x64.tar.gz /usr/local/USER的使用
Docker 默认所有的应用都会跑在容器的 root user 底下,但是这样会造成一些潜在的安全隐患。在 production 环境跑的 Container 最好是通过USER命令跑在非特权用户底下。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对软件开发网的支持。
您可能感兴趣的文章:编写最佳的Dockerfile的方法Docker中镜像构建文件Dockerfile与相关命令的详细介绍Docker Dockerfile的使用实例Docker 基础之Dockerfile命令详解详解Dockerfile 中的 COPY 与 ADD 命令Dockerfile指令详解Dockerfile 指令 ADD 和 COPY介绍Dockerfile中CMD和ENTRYPOINT命令详解浅谈docker Dockerfile 指令 VOLUME 介绍










