我在码头上测试了图像尺寸。
# docker images
REPOSITORY TAG IMAGE ID
CREATED SIZE
img_anaconda_installed latest 5bbdedd62fd3
21 seconds ago 2.79GB
img_anaconda latest 5d9dbd3c4a63
14 minutes ago 794MB
centos latest 196e0ce0c9fb
3 weeks ago 197MB
centos是我运行的'docker pull centos'的图像,它的大小是197M。
然后,我运行了一个centos容器,在容器中我做了yum install wget,yum install bzip2,下载anaconda.sh文件,然后停止容器。
然后我做了'docker commit my_container img_anaconda'来创建一个新图像。图像尺寸为794M。它比我想象的要大一点。
最后,我再次进入my_container安装anaconda。完成anaconda之后,我停止了容器,并且docker提交了一个名为img_anaconda_installed的新映像。它的大小是2.79GB。
所以我的问题是,大尺寸的原因只是anaconda很大,或者docker commit会导致其他一些事情吗?
PS:anaconda.sh文件的大小为103M。
答案 0 :(得分:1)
图像越多,结果大小越大。
如果你更新yum存储库(我想你做的是因为你添加了包!)然后提交那个图层,它将进一步增加图像大小。如果你清理缓存,它可能会减少一点。
我建议写一个Dockerfile
而不是通过运行容器更新图像,这样你就可以更好地控制图层数量,你可以测试和调整更多的内容并立即查看结果。
如果您运行docker history <image name>
,您也可以看到不同图层的大小,这样可以提示问题所在的位置。