當然,您可以通過幾種方式來分發圖像。我應該提到的最重要的事情可能是建立一個註冊表(特別是由發行團隊支持的最新版本的「v2註冊表」)is kind of a pain。這並不難,而且比第一版註冊表(舊的python項目)要早幾年,但這並不是你想要解決這個問題的方法,尤其是在你尋找一個快速而簡單的解決方案的時候。
因此,您將剩下的圖像或容器分發爲tarball檔案。你可以在這裏使用兩組命令,並且有一些小的(但是重要的)區別。首先,讓我們看看只傳輸圖像,而不是容器。因此,您將在Docker主機上使用docker save
,然後將tarball傳輸到目標機器,然後使用docker load
從tarball創建映像。例如,在主機上:
docker save --output myImage.tar myImage:latest
然後你就可以rsync
或sftp
(或其他)的myImage.tar
壓縮包傳送到目標機器。然後在那個主機上:
docker load --input myImage.tar
這很簡單,但假設你有一個容器從你想要傳輸的映像運行。問題是你可以傳輸圖像,但是它會在啓動後丟失對圖像文件系統所做的所有更改。解決方法是使用docker export
和docker import
。這會將所有中間更改與基本文件系統映像一起保存到文件系統中。
因此,您將在您的docker主機上使用docker export
命令,當然還要在目標機器上使用docker import
。和另一個例子一樣,您需要將docker export
生成的壓縮包傳輸到目標機器。例如,搬運工主機上:
docker export myContainer > myContainer.tar
然後在目標機器上,你已經轉移myContainer.tar
後它:
cat myContainer.tar | docker import - jotschi/myContainerImage
現在你已經有了目標的圖像稱爲jotschi/myContainerImage
,然後您可以創建一個容器:
docker run -d --name=myContainer -p 80:80 jotschi/myContainerImage