最近我用一个运行jboss的centos基础图像创建了一个docker容器。最初我安装了jdk(和承诺),使容器体积庞大(约850M)。后来,我卸载了jdk并安装了jre。从容器内部a
du -xsh /
仅显示440M。但是在对图像进行更改后,它仍显示711M。图像大小是否与容器 du 不匹配(或接近)?或者在提交时,docker是否会继续添加旧的(如SCM)?
由于
答案 0 :(得分:2)
我认为如果您使用Dockerfiles来构建图像而不是提交方法,您会发现这个问题很容易解决。如果您使用的是Dockerfiles,则只需删除添加了JDK的RUN命令,然后重建即可。这将摆脱以前的层。
答案 1 :(得分:1)
回答我自己的问题。似乎每当提交图像时,docker就会不断向基本图像添加图层。然而,你的容器很少将它提交到底座只会在现有图像上添加一个新图层,这总是会给图像膨胀。这种方法的问题是当您进行修改并提交到基本映像时,最终会将不需要的层带到生产中。我看不到合并图层的官方方法。但this link似乎有一些变通方法。但是,我只是从基础重新创建了一切,只提交了一次,使图像大小非常接近容器大小。