1. 程式人生 > >Docker commit 命令儲存的映象檔案太大的問題

Docker commit 命令儲存的映象檔案太大的問題

基礎映象: centos7.5

進入容器後, 先後安裝了 jdk1.8, maven3.6.0, git, rocketmq4.3.2

安裝完成後使用 docker commit 命令儲存為映象

結果跑了半天以後終於儲存下來一看竟然有 3.3G 的大小

我勒個去

 

去網上查了一番以後發現一個問題

由於docker映象的構建方式是以層的概念來實現的

就是說我在容器內所做的所有操作都會在構建映象時執行一遍

所以每一個操作所涉及到的記憶體空間, 都會成為映象檔案的一部分

比如我在容器內下載了rocketmq的原始碼, 並在裡面編譯安裝完成

隨後我把原始碼刪掉了, 可是實際上他已經被深深地刻在了映象上

 

投機取巧:

將已經安裝好各個軟體的容器中的相關檔案download到宿主機的/home/package目錄下

比如我這裡的:

  /usr/local/jdk1.8

  /usr/local/maven3.6.0

  /usr/local/rocketmq4.3.2

隨後使用基礎centos映象開啟一個新容器, 並把這些檔案掛載到容器內:

docker run -it -v /home/package:/usr/local --privileged=true <centos映象id> /bin/bash

進入容器後, 只需要修改 /root/.bashrc 檔案, 設定一下環境變數

然後 docker commit 此容器

這樣構建下來的映象大小是 300+M (centos基礎映象為202M)

 

算是一波大瘦身吧. 當然是用dockerfile應該會更小

但是我現在還不會寫, 再說吧!