🐳
Dockerfile 指令速查
Dockerfile 指令 FROM/RUN/COPY/CMD 等速查。
本地处理 · 不上传
加载工具中…
相关:dockerfile · docker · 指令 · 构建
Dockerfile 指令速查列出各指令的作用与常见写法,并指出影响镜像体积与构建缓存的关键点。写 Dockerfile 的顺序直接决定构建速度。
使用步骤
- 按基础镜像、依赖安装、拷贝、启动的顺序组织指令
- 把变动少的步骤放前面以利用层缓存
- 注意 CMD 与 ENTRYPOINT 的配合方式
- 构建后用 docker history 看每层的体积
使用场景
- 编写与优化 Dockerfile
- 理解各指令的行为差异
- 减小镜像体积
- 改善构建缓存命中
小贴士
- 把变化少的步骤(安装依赖)放前面,变化频繁的(复制源码)放后面,能最大化利用构建缓存。
- 每条 RUN 都会产生一个镜像层,删除文件的操作必须与创建它的操作在同一条 RUN 中,否则文件仍存在于历史层里。
- COPY 与 ADD 的区别在于 ADD 会自动解压压缩包并支持 URL,正因为行为更多所以更容易出意外,通常应优先用 COPY。
常见问题
为什么每次构建都很慢?
多半是指令顺序导致缓存失效。COPY 全部源码放在安装依赖之前,任何代码改动都会让后续所有层重新构建。应先复制依赖清单、装依赖,再复制源码。
镜像为什么这么大?
常见原因是在后续层删除文件——前面的层仍保留着它。删除操作必须与产生文件的操作写在同一条 RUN 里。此外使用多阶段构建,只把产物复制到最终镜像,能大幅瘦身。
COPY 和 ADD 用哪个?
优先 COPY。ADD 额外支持自动解压与从 URL 下载,这些隐式行为容易带来意外。除非确实需要自动解压压缩包,否则应该用行为明确的 COPY。
Dockerfile 指令速查是免费的吗?
是。本站所有工具完全免费,无需注册登录、无广告干扰,打开即用。
使用Dockerfile 指令速查,我的数据安全吗?
安全。该工具在你的浏览器本地完成处理,输入内容不会上传到服务器,隐私更有保障。