2016-12-15 7 views
5

私は10のドッカー画像を持っているとしましょう。 10個のドッカー画像すべてにおいて、多くのレイヤーが似ています。ドッカーイメージをあるホストから別のホストにコピーする方法は?

docker save -oを使用している間は、保存された画像はスタンドアロンであるため、画像サイズが大きくなります。 (〜10枚の画像サイズが9ギガバイトの周りにあるために)引かドッキングウィンドウの画像の後

、私は探検:

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

効率的に画像をエクスポートするとにかくはありますか?

また、新しいホストにaufsとimageフォルダをコピー&ペーストしようとしました。しかし、一部のコンテナは起動できません。

ログ検査中:

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

注:私はすでにthisをいいます。この質問は重複していません。上記の私のユースケースは解決されませんでした。

+1

[リポジトリを介さずに1つのホストから別のホストにドッカーイメージをコピーする方法は?](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とimageフォルダを慎重にコピーしました。

ステップ1:エクスポートするマシンで

:あなたは(輸出することになっている)画像のみを持っていることを確認してください。実行中および停止中のすべてのコンテナを削除します。

インポートするマシンで、画像とコンテナがないことを確認します。

ステップ2:tar -cvf docker-images.tar /var/lib/docker/aufs /var/lib/docker/imageすべての画像レイヤーとそのデータベースを1つのtarファイルに圧縮します。 、あなたがイメージをインポートしたい

tar -xvf docker-images.tar -C /var/lib/docker/マシンで:サイズはわずか3ギガバイト

ステップ3です。

ここでドッカーを再起動します。 service docker restart

関連する問題