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

推薦する

クイズゲームコミュニティのQuizUpがテンセントとセコイアから2200万ドルを調達

QuziUp は数週間前に iOS で開始され、現在 500 万人を超えるユーザーがいるオンラインの...

ブランドが自ら放送して羅永浩を攻撃

著者:蘇奇編集者:金玉凡カイボロウファイナンス(kaiboluocaijing)昨年、「ライブストリ...

#干货# cheapwindowsvps - 60% オフ/信頼性の高い Windows VPS/1Gbps 帯域幅、無制限のトラフィック

2007 年から Windows VPS を専門的に運用している cheapwindowsvps が...

2013 年に外国貿易ウェブサイトの SEO 戦略にはどのような変更が必要でしょうか?

みなさんこんにちは。私は対外貿易ウェブサイトの最適化、つまりGoogleの最適化に携わっている者です...

クラウド ネイティブ パターンの紹介と概要

近年、クラウド コンピューティングはエンタープライズ アプリケーションの新しい標準となっています。ク...

ある人は早く歩きますが、ある人は遠くまで歩きます。 Amazon Web Services はどのようにしてパートナーの共同成長を可能にしますか?

[51CTO.com からのオリジナル記事]テクノロジーの普及と実装は、エコシステムの協調的な取り組...

ファーウェイクラウドはラテンアメリカ市場に多額の投資を行い、一連の新製品とエコパートナープログラムをリリース

HUAWEI CLOUDは8月25日から9月3日まで、ラテンアメリカでの2周年を祝う一連のイベントを...

CableChief - 6.99 ドル/kvm/1G メモリ/500g ハード ドライブ/2T トラフィック/ユタ

新しいビジネスのように見える CableChief は、KVM 仮想化に基づく 2 つの特別価格のス...

ブランドマーケティングの破壊者

今年の前半が新たな消費の年だとすれば、後半は「仮想世界」の本拠地となるだろう。昨年10月にFaceb...

エッジコンピューティングは小規模データセンターの未来となる

今日のデータ量が飛躍的に増加しており、したがってインターネットに接続されるデータの量も急速に増加して...

盲目的にウェブサイトを最適化するよりも、ユーザーエクスペリエンスを良くする方が良い

昨日(2013年2月19日)BaiduのGreen Radish Algorithmがリリースされ、...

仮想化と災害復旧の簡単な紹介

基本的な災害復旧は効果的です。しかし、ある程度の不確実性もあり、一部のベンダーは仮想化の普及が災害復...

「ネットワーク超大規模トラフィック攻撃」業界チェーン:DDOS攻撃には明確な分業がある

インターネットは継続的に発展している技術分野です。新しいテクノロジーが次々と登場し、仕事や生活に溶け...

ウェブデザイナーはデスクトップを忘れてモバイルデバイスに注力すべき

はじめに:アメリカのオンライン雑誌「Slate」は本日、Farhad Manjoo 氏による記事を掲...