我有运行 GlassFish 的容器。当我尝试提交图像时,它变成了 14GB。后来,我/tmp/
在10GB的容器中删除并尝试提交图像,但图像仍然是14GB。从容器中删除文件似乎没有反映在图像大小上。我该如何解决这个问题?
小智 10
您可能面临的问题是,在提交中删除文件并不会改变文件在前一个映像中存在的事实,因此前一个映像仍然是 14G。
看看这篇文章中的“层”部分:http : //woudenberg.io/reducing-docker-image-size/
要解决该问题,您需要在生成它们的原始提交中删除 /tmp/ 下的内容,因此由于该提交而创建的图像不包含它们。这在使用 dockerfiles 时很容易,但在使用提交创建图像时不确定是否可能。
您可以做的另一件事是通过导出/导入图像来压缩图层。
扩展@Juan Antonio的答案,Dockerfile
这样做不会节省空间:
RUN apt-get install -y foo bar
...
RUN apt-get purge --auto-remove -y foo bar
Run Code Online (Sandbox Code Playgroud)
你需要做的是:
RUN apt-get install -y foo bar && \
&& ... \
&& apt-get purge --auto-remove -y foo bar
Run Code Online (Sandbox Code Playgroud)
不利的一面是,这意味着缓存会减少,就好像大型命令行中发生任何更改一样,Docker 必须重新运行整套命令。
归档时间: |
|
查看次数: |
4713 次 |
最近记录: |