我在Docker上做了一个关于映像大小的测试。为什么在我运行docker commit后docker映像大小如此之大
# 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安装wget,yum install bzip2,下载anaconda.sh文件,并停止容器。
然后我做了'码头提交my_container img_anaconda'来创建一个新的图像。图像大小为794M。它的尺寸比我想象的要大一些。
最后,我再次进入my_container安装anaconda。在完成anaconda之后,我停止了容器,docker提交了名为img_anaconda_installed的新映像。它的大小是2.79GB。
所以我的问题是,大尺寸的原因仅仅是anaconda很大,或者docker commit会引起一些其他的事情吗?
PS:anaconda.sh文件的大小是103M。
谢谢,我查了“码头历史”,发现图层只有centos = 197M。所以我认为其余大小来自容器中的文件更改(例如yum install)。但它比我想象的要大得多。 –
iloveml
是的,因为有很多层次:) – Jite
我几个星期前写了一篇关于这个的博客文章,也许它可以让你更深入的了解这个问题:https://jite.eu/2017/9/27/layers/ – Jite