2016-12-15 94 views
5

假設我有10個碼頭圖像。在所有10個碼頭圖像中,許多圖層都是相似的。如何將Docker圖像從一臺主機複製到另一臺主機上?

使用docker save -o時,保存的圖像是獨立的,因此圖像尺寸變大。 (〜10對於圖像大小約爲9GB)

拉泊塢窗圖像後,我將探討:

/var/lib/docker 
    --- aufs (~3GB only) 
    --- containers (Few KBs) 
    --- image (Few KBs) 
    --- ... 
    --- mnt 

反正是有效率地導出的圖片?

我也嘗試複製粘貼aufs和圖像文件夾到新主機。但有些容器無法啓動。

雖然檢查日誌:

/usr/bin/sudo must be owned by uid 0 and have the setuid bit set

注:我已經提到this。這個問題不是重複的。它沒有解決我上面提到的用例。

+1

可能的副本[如何將Docker鏡像從一臺主機複製到另一臺主機而不通過存儲庫?](http://stackoverflow.com/questions/23935141/how-to-copy-docker-images-from-one-host -to-another-without-via-repository) – BMitch

+0

最好的解決方案是運行一個註冊表服務器,如果安全是一個問題,你自己的私人服務器可以放在一個容器中,TLS加密會話和密碼保護。 – BMitch

+1

當然,我可以運行註冊表服務器。但我想將我的碼頭圖像攜帶到USB或CD等便攜式媒體中。 – rajagopalx

回答

2

我不知道這是否是一種正確的方法。但下面的方法爲我工作。我用30 Kolla Openstack Docker Images進行了測試。

爲什麼我的問題docker save

正如我所說,我有30個碼頭圖像。而我保存使用docker save -o <save image to path> <image name>。總大小爲15 GB,這對於便攜式來說太大了。

我做了什麼?

長話短說:我仔細複製aufs和圖像文件夾。

第1步:

在要導出機器:請確保您有隻圖像(它們將成爲出口)。刪除所有正在運行和停止的容器。

在要導入的機器中:確保您沒有任何圖像和容器。

第2步:tar -cvf docker-images.tar /var/lib/docker/aufs /var/lib/docker/image它會壓縮所有的圖像層和它的數據庫到一個單一的tar文件。 尺寸只有3 GB

步驟3:在機牀上,要導入圖像,

tar -xvf docker-images.tar -C /var/lib/docker/

現在重新啓動泊塢窗。 service docker restart

相關問題