Dockerfile 总结
FROM
构建的新镜像是基于哪个镜像,也可以直接构建基本镜像
scratch 制作 base image
centos 基于 centos:latest 镜像
LABEL
说明,类似注释 ,最好都得有
RUN & CMD & ENTRYPOINT
WORKDIR
ADD & COPY
大部分情况:copy 优先 add
add 有解压功能
远程目录使用 curl or wget
ADD hello / # 将 hello 添加到/下
ADD test.tar.gz / # ADD 有解压功能
WORKDIR /root # workdir 和 add 联合使用
ADD hello test/ # /root/test/hello
WORKDIR /root # workdir 和 add 联合使用
COPY hello test/ # /root/test/hello
ENV
RUN、CMD 和 ENTRYPOINT 指令区别
- RUN 在 building 时运行,可以写多条
- CMD 和 ENTRYPOINT 在运行 container 时运行,只能写一条,如果写多条,最后一条生效。
- CMD 在 run 时可以被 COMMAND 覆盖, ENTRYPOINT 不会被 COMMAND 覆盖,但可以指定—entrypoint 覆盖。
最佳实践
可参考
- github.com/docker-library 实例
- dockerfile refrence 官方文档
- Dockerfile最佳实践
- 原文作者:战神西红柿
- 原文链接:https://tomatoares.github.io/posts/cloud/dockerfile%E6%80%BB%E7%BB%93/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。