我有容器运行GlassFish。 当我尝试提交图像时,它变成了14GB。 后来,我删除了容器中的/tmp/ 10GB,并试图提交一个图像,但仍然是14GB的图像。 看来从容器中删除文件并不反映在图像大小。 我该如何解决这个问题?
您可能面临的问题是,删除提交中的文件不会改变该文件在之前的图像中,因此之前的图像仍然是14G。
看看这篇文章中的“图层”部分: http : //woudenberg.io/reducing-docker-image-size/
为了解决这个问题,你需要删除生成它们的原始提交中的/ tmp /下的东西,所以作为提交结果创build的映像不包含它们。 使用dockerfiles时很容易,但在创build提交图像时不确定是否可行。
另一件你可能能做的是通过导出/导入图像来挤压图层。
扩展@Juan Antonio的答案,有一个Dockerfile这样做不会节省空间:
RUN apt-get install -y foo bar ... RUN apt-get purge --auto-remove -y foo bar
你需要做的是:
RUN apt-get install -y foo bar && \ && ... \ && apt-get purge --auto-remove -y foo bar
不好的一面,这意味着caching就像在大型命令行中发生的任何变化一样,Docker将不得不重新运行整个命令集。