1. 程式人生 > 其它 >docker 映象重新命名_Docker使用技巧:你會正確匯出Docker映象?

docker 映象重新命名_Docker使用技巧:你會正確匯出Docker映象?

技術標籤:docker 映象重新命名

工作中我們會常常遇到在沒有映象倉庫中心的時候,需要將容器放到到另外一個主機上,此時,我們就需要將映象匯出,今天我們就介紹下docker的匯出(docker export & docker save)和匯入(docker import & docker load)的命令。

docker export & docker import

使用docker export 命令匯出的檔案相當於是容器的快照,並不儲存映象的層歷史和元資料資訊,目標型別是容器檔案系統,檔案匯出為TAR檔案,該檔案只是包含了組成容器狀態的檔案,而且,正在執行中的狀態不會被儲存.

39c4fad52a5ae9b18bea344e8cce92f9.png

比如,現在需要匯出主機上的nginx映象:

 docker export -o nginx.tar nginx:myversion  #等價於 docker export nginx:myversion > nginx.tar 

匯入:

#如果不指定對應的nginx:myversion版本和標籤資訊,匯入之後REPOSITORY和TAG會顯示為docker import nginx.tar nginx:myversion

docker save & docker load

docker save 則是可以保留映象的層歷史和元資料資訊,相應的,匯出的映象檔案TAR也會比較大。

使用docker save匯出的映象檔案,也可以使用docker import匯入,對應的,匯入之後將會丟棄容器的歷史和元資料資訊。如果要保留映象的歷史,可以使用load而不是import,這樣其歷史也會在另一邊的docker守護程序上得到保留。

匯出

docker save -o nginx.tar nginx:myversion#等價於docker save -o nginx:myversion > nginx.tar

匯入,不指定版本TAG資訊,在匯入之後也會顯示nginx的版本資訊。

docker load -i nginx.tar #等價於docker load < nginx.tar

總結

docker save儲存的是包含層歷史和元資料的映象(image)檔案,docker export儲存的是不包含容器層歷史和元資料的容器(container)快照;docker load可以用來匯入映象檔案,docker import用來匯入容器檔案,兩者都會恢復為映象;docker load不能對匯入的映象重新命名,而docker import可以為映象指定新名稱。