Docker コンテナを別のホストにコピー/転送するにはどうすればよいですか?

Docker コンテナを別のホストにコピー/転送するにはどうすればよいですか?

[51CTO.com クイック翻訳] Docker コンテナは小さなソフトウェア ボックスなので、あるコンピュータから別のコンピュータにコピーして転送することができます。ただし、大企業では独自のライブラリを構築し、独自のイメージをカスタマイズして必要に応じてサーバーに配布できるため、この点についてはあまり議論されません。しかし、たまに 1 つまたは複数のコンテナを移動する必要があるだけであれば、それほど複雑にする必要はありません。

ローカル コンピューターで Docker インスタンスを使用していて、それをより強力なサーバーに移動することを決定する場合があります。あるいは、カスタム コンテナーを複数のマシンに展開し、コンテナーを「コピーして貼り付ける」だけが必要な場合もあります。場合によっては、クラウド コンピューティング プロバイダーに満足できず、別のプロバイダーに切り替えたいと思うこともあります。いずれにせよ、非常に簡単なプロセスがあり、その詳細は以下に記載されています。

ソースホストからコンテナイメージを保存する

最初にコンテナを停止する必要はありませんが、停止することを強くお勧めします。 Docker インスタンス内のデータのスナップショットを作成します。インスタンスの実行中にこれを行うと、スナップショットに含まれる一部のファイルが不完全になる可能性があります。誰かが 500MB のファイルをアップロードすると想像してください。 250MB をアップロードした後、docker commit コマンドを発行します。その後アップロードは続行されますが、別のホストで Docker イメージを復元すると、500 MB のうち 250 MB しか使用できなくなります。

したがって、可能であれば、まずインスタンスを停止してください。

  1. docker stop インスタンス名

[[274753]]

Docker コンテナは通常の初期イメージから構築されます。時間が経つにつれて、このベースイメージに独自の変更が加わります。コンテナ内で実行されているプロセスは、独自のデータを保存したり、その他の変更を加えたりすることもできます。これらすべてを保存するには、この新しい状態を新しいイメージにコミットできます。

インスタンスが現在実行中の場合、この操作によりインスタンスの内容が保存される間インスタンスが一時停止されることに注意してください。コンテナに大量のデータを追加した場合、この操作が完了するまでに長い時間がかかることがあります。これが問題になる場合は、次のコマンドの代わりに docker commit -p=false NAME_OF_INSTANCE mycontainerimage と入力することで、この一時停止を回避できます。ただし、絶対に必要な場合を除いて、これを行わないでください。この場合、一貫性のない/不完全なデータを含むイメージが作成される可能性が高くなります。

このチュートリアルでは、結果のイメージに「mycontainerimage」という汎用名が選択されました。必要に応じてこの名前を変更できます。名前を変更する場合は、後続のすべてのコマンドでその名前に遭遇したときに必ず置き換えてください。

  1. docker commitインスタンス名 mycontainerimage

次に、この画像をファイルに保存して圧縮します。

  1. docker でコンテナイメージを保存します | gzip > mycontainerimage.tar.gz

次に、好みのファイル転送方法を使用して、コンテナを移行するホストに mycontainerimage.tar.gz をコピーします。

コンテナイメージをターゲットホストにロードする

イメージを転送したホストにログインしたら、それを Docker にインポートします。

  1. gunzip -c mycontainerimage.tar.gz |ドッカーロード 

ここではコンテナを初期化していないため、docker start でコンテナを起動することはできません。代わりに、この Docker インスタンスを初めて実行するときに、以前に使用したのと同じコマンドを発行します。唯一の違いは、過去に使用したイメージではなく、「mycontainerimage」を使用することになる点です。

次のコマンドは単なる例です。自分に当てはまらない限り、コピーして貼り付けないでください。 (イメージを初めて実行するときに特別なパラメータは必要ありません)

  1. docker run -d --name=コンテナの名前を選択 mycontainerimage  

対照的に、次のコマンド例では、ホストのポート 80 をコンテナーのポート 80 に転送するために --publish パラメータが必要です。

  1. docker run -d --name=http-server --publish 80:80 mycontainerimage  

その後は、docker stop コマンドと docker start コマンドを使用して、コンテナを通常どおり停止および起動できます。

ファイルを作成せずに画像を転送する

場合によっては、mycontainerimage.tar.gz ファイルの作成をスキップしたい場合があります。コンテナ内に大量のデータが入っているため、ディスク容量が足りない可能性があります。 1 つのコマンドで、イメージを保存、圧縮、転送、解凍し、ターゲット ホストにロードできます。前述の docker commit コマンドを実行した後、以下を使用できます。

  1. docker でコンテナイメージを保存します |圧縮 | ssh [email protected] 'gunzip | docker ロード'  

SSH クライアントが組み込まれているため、Windows でも動作するはずです (PuTTY は不要になりました)。

次に、状況に応じて docker run コマンドを引き続き使用します。

結論

docker save と docker load は、コンテナを時々移動するための一時的なソリューションとして最適です。ただし、コンテナを頻繁に移動する場合は、代わりに独自の専用ライブラリを構築する必要があることに注意してください。

元のタイトル: Docker コンテナを別のホストにコピー/移動する方法、著者: Alexandru Andrei

[51CTOによる翻訳。パートナーサイトに転載する場合は、元の翻訳者と出典を51CTO.comとして明記してください。

<<:  Ascend 910とMindSporeコンピューティングフレームワークが正式にリリースされ、クラウドでのHuawei Cloud AIコンピューティングのパワーが解き放たれました。

>>:  AWSは、起業のハードルを下げることで、スタートアップ企業や開発者がより早く成功できるよう支援します。

推薦する

ユーザーエクスペリエンスと検索エンジンの親和性の両方を考慮したウェブサイトの設計方法

長い発展と変化の期間を経て、この基礎的なインターネット業界は、検索エンジンが人々の情報検索をますます...

WeChatサブスクリプションアカウントの有料認証は300元からで、カスタムメニュー機能も利用可能

【TechWeb Report】12月24日、WeChatパブリックプラットフォームは最近、より厳格...

エッジコンピューティングの台頭:データストレージをどう変えるか

エッジ コンピューティングは、データ転送コストと損失を削減することで、企業が効率的で信頼性の高いスト...

トラを怖がらない初心者の友達

水は深い。このフレーズは、市場の状況が悪く、複雑であることを示しています。インターネット業界で働く友...

マーケティングに使えるお金はたったの1ドル。PRには使わないで

少し前に、「マーケティングに使えるお金が1ドルしか残っていないので、PRに使います」という記事が、徐...

クラウド コンピューティングと DevOps: 継続的インテグレーション/継続的デリバリーと市場分析

今日、企業は競合他社よりも速く、高品質のソフトウェアを提供するという大きなプレッシャーにさらされてい...

imidc: e3、e5 専用サーバー、120 台、月額 30 ドル、香港サーバー\台湾サーバー\日本サーバー

Imidc の香港、台湾、日本のデータセンターでは、独立サーバーの特別プロモーションを同時に実施して...

クラウドコンピューティングの「トレンド2023」:「クラウド上のリソース」から「クラウドの深層利用」へ

クラウドコンピューティングは、伝統的な産業のデジタル変革にとって重要な基盤であり、実体経済のデジタル...

2019年ダブル11の最新ブランドマーケティング事例

ダブル11の先行販売は10月20日に始まります。この期間中に目立つために、大手ブランドはさまざまなマ...

おすすめ: lunarpages - 1年間の仮想ホスティングを購入すると、1年間無料/無料ドメイン名がもらえます

1998 年に設立されたアメリカのホスティング会社 lunarpages が割引プロモーションを実施...

Baidu 360戦争の進展:検索の金鉱をめぐる戦いは数年続くかもしれない

北京の記者、謝小平360は8月16日に検索製品を発売して以来、まだ収益はないものの、オリジナルの検索...

Google Cloud の価値はいくらですか?

今日のクラウド コンピューティングの世界では、強い者は常に強く、3A は領域を拡大し続け、中小メーカ...

ウェブサイトの内部リンクの最適化といくつかの一般的な構造最適化手法

月給5,000~50,000のこれらのプロジェクトはあなたの将来ですインターネットの海で何年も過ごし...

エッジコンピューティング、人工知能、サーマルイメージング - スマートセキュリティの未来

スマート セキュリティ業界は急速に進化しており、AI と 4K がスマート カメラで普及するにつれて...

Kubernetes vs Docker: コンテナとオーケストレーションを理解する

Docker と Kubernetes がアプリケーション開発をどのように変えているのか、またこれら...