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

推薦する

Alibaba Cloudが第7世代ECSクラウドサーバーをリリース:全体的なコンピューティング能力が40%向上し、チップレベルのセキュリティ保護を実現

2月8日、アリババクラウドは第7世代ECSクラウドサーバー製品ファミリーの発売を発表しました。最新の...

検索エンジンがウェブサイトをランク付けし、フレンドリーさを確立する方法を説明する

現在、SEO 業界に参入するほとんどの人は、検索エンジンのランキング ルールをあまり理解していません...

ブラック 5: edis.at - 生涯 35% オフ/KVM/OVZ/14 データセンター

edis.at の VPS は香港をはじめ、世界中に 10 か所以上のデータセンターがあります。ご興...

ウェブサイトのキーワードランキングの機会をつかみ、ウェブサイトのドメイン名から始めましょう

今日、私は偶然、特定のウェブサイトタイトルや特定のウェブサイトの説明のないウェブサイトがBaiduで...

2022年シルバーエコノミーインサイトレポート

今日は「シルバーエコノミーへの洞察」をいくつか皆さんと共有したいと思います。 QuestMobile...

王老吉商標をめぐる争いからウェブサイトのブランド価値を考える

週末、レイカーズとナゲッツのNBA第7戦を観ていたのですが、ハーフタイムの休憩中に小さな広告が流れま...

ローカルウェブサイトの不正確な詳細を避け、ローカルウェブサイトの重量の損失を防ぐ

ローカルウェブサイト間の競争は非常に激しく、一部の県では数十のローカルウェブサイトがあります。そのた...

locvps 韓国の vps はどうですか?評価は、どのように

locvps には韓国の VPS があり、データセンターはソウルにあります。公式発表では、アジア太平...

クラウドにおける完璧な組み合わせ: コンテナと DevOps

企業が継続的デリバリー アプローチの実装や、ソフトウェア開発プラクティスへのクラウド コンピューティ...

良いニュースです!ブルークラウドが「2019年中国年間最優秀雇用主」を受賞

最近、Zhaopin.comが主催した「共生の職場、効率で勝つ」2019年中国年間最優秀雇用主表彰式...

タオバオの商品ランキングに影響を与える一般的な要因についての簡単な説明

現在、タオバオ SEO はますます人気が高まっています。すべてのタオバオ店長は、検索バーでの自社製品...

量子コンピューティングはコンピューティング分野をどのように変えるのでしょうか?

量子コンピューティングは急速に発展している分野であり、複雑な問題を解決し、情報を処理する方法に革命を...

テンセントの唐道勝氏:デジタルとリアルの融合は業界にとって「答えなければならない問題」となり、テンセントは将来4つの主要エンジンを構築する

11月3日、テンセントのクラウドおよびスマート産業グループの上級執行副社長兼CEOである唐道勝氏は、...