我在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