是否可以从 Docker 中间层完全删除文件?
例如我有:
Layer A: with BigFile
L Layer B: remove BigFile
L Layer C: builds on B
Run Code Online (Sandbox Code Playgroud)
由于文件仍然存在于容器中,即使BigFile无法访问,它也存在于C. 因此增加了整体图像尺寸。
但我想要的是BigFile完全从C.
解决办法是什么?难道只是从Layer A一开始就将其删除吗?
解决办法是什么?是不是一开始就将其从A层中删除?
一旦文件位于某个层中,就无法将其删除,但如果您小心地在添加该文件的同一构建步骤中删除该文件,则该文件将不会保留在该构建步骤的层中。
简单、常见的示例是运行 apt get update、安装软件包,然后在同一 RUN 命令中删除软件包索引,以将 apt 索引保留在映像层之外。
https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#run详细讨论了此示例。