1. 程式人生 > 實用技巧 >Docker(四)容器的匯出與匯入(遷移)

Docker(四)容器的匯出與匯入(遷移)

  好了,到了最後的一步了,我們配置好了壞境,最後肯定是要把我們的環境打包發貨以供他人使用,只要我們人人都貢獻一個映象,那麼中央倉庫將會裝不下_。我們要把我們定製好的容器,做成我們自己的映象,貼上標籤,送到中央倉庫,然後別人就可以從中央倉庫獲取到我們的映象了。當然你要可憐中央倉庫也可以匯出來通過其他的方式傳遞給他人使用。

一、將容器打包成映象

  docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
//-a :提交的映象作者;
//-c :使用Dockerfile指令來建立映象;
//-m :提交時的說明文字;
//-p :在commit時,將容器暫停
舉個栗子:docker commit -a:"lx" -m:"ubuntu16.04 add opencv2.4 python2.7" 23d ubuntu:16.04v1


二、容器打包成一個映象

  docker save [OPTIONS] IMAGE [IMAGE...]
  OPTIONS 說明:
 //-o :輸出到的檔案。
我們可以把剛剛製作好的映象打包成tar格式。
以下寫法都可以
docker save -o ubuntuv1.tar ubuntu:16.04v1 docker save ubuntu:16.04v1 -o ubuntuv1.tar
docker save ubuntu:16.04v1 > ubuntuv1.tar

二、打包映象的匯入

docker load [OPTIONS]
OPTIONS 說明:
  --input , -i : 指定匯入的檔案,代替 STDIN。
  --quiet , -q : 精簡輸出資訊。
以下寫法都可以
docker load -i ubuntuv1.tar

docker load < ubuntuv1.tar

二、容器打包成一個快照

  docker export [OPTIONS] CONTAINER
OPTIONS說明:
-o :將輸入內容寫到檔案。
舉個栗子
docker export -o nginx-test.tar nginx-test

二、容器快照的匯入

  docker import [options] file|URL|- [REPOSITORY[:TAG]]
docker import nginx-test.tar nginx:imp

docker save和docker export的區別

對於Docker Save方法,會儲存該映象的所有歷史記錄
對於Docker Export 方法,不會保留歷史記錄,即沒有commit歷史
docker save儲存的是映象(image),docker export儲存的是容器(container);
docker load用來載入映象包,docker import用來載入容器包,但兩者都會恢復為映象;
docker load不能對載入的映象重新命名,而docker import可以為映象指定新名稱。