Docker コンテナを他のサーバーに移行する 5 つの方法

Docker コンテナを他のサーバーに移行する 5 つの方法

[[388254]]

多くの場合、移行は避けられません。ハードウェアのアップグレード、データ センターの変更、古いオペレーティング システムなど、これらすべてが移行のきっかけとなる可能性があります。

Docker コンテナの移行は、多くの場合、移行タスクの一部です。今日は、Docker コンテナを既存のサーバーから別のサーバーに移行するさまざまな方法について説明します。

Docker コンテナを別のサーバーに移行する方法。 Docker コンテナをあるサーバーから別のサーバーに直接移行する方法はありません。以下の 1 つ以上の方法を使用して、Docker コンテナの移行の問題を解決します。

1. コンテナの輸出入

コンテナをエクスポートするということは、コンテナのファイル システムから圧縮ファイルを作成することを意味します。エクスポートされたファイルは「gzip」ファイルとして保存されます。

  1. docker エクスポート コンテナ| gzip > コンテナ.gz

次に、scp や rsync などのファイル転送ツールを使用して、圧縮ファイルを新しいサーバーにコピーします。新しいサーバーでは、この gzip ファイルが新しいコンテナーにインポートされます。

  1. zcat コンテナ.gz | docker import - コンテナ 

新しいサーバーで作成された新しいコンテナには、「docker run」コマンドを使用してアクセスできます。

コンテナのエクスポート ツールの欠点の 1 つは、コンテナのポートと変数がエクスポートされず、コンテナを含む基礎データもエクスポートされないことです。

これにより、別のサーバーにコンテナをロードしようとするとエラーが発生する可能性があります。この場合、コンテナをあるサーバーから別のサーバーに移行するために、Docker イメージの移行を選択します。

2. コンテナイメージの移行

Docker コンテナを別のサーバーに移行する最も一般的な方法は、コンテナが関連付けられているイメージを移行することです。

移行する必要があるコンテナについては、まず「Docker commit」コマンドを使用して Docker イメージを圧縮ファイルに保存します。

  1. docker commitコンテナID イメージ 

結果のイメージは圧縮されて新しいサーバーにアップロードされ、そこで「docker run」を使用して新しいコンテナが作成されます。

この方法では、データボリュームは移行されませんが、コンテナ内に作成されたアプリケーションのデータは保持されます。

3. 画像の保存と読み込み

Docker イメージは、アプリケーションのコード、ライブラリ、構成ファイルなどのパッケージです。Docker コンテナはこれらのイメージから作成されます。

「docker save」を使用してイメージを圧縮し、新しいサーバーに移行できます。

  1. docker save イメージ> イメージ.tar

新しいサーバーで、「docker load」を使用して、圧縮されたイメージ ファイルを使用して新しいイメージを作成します。

  1. cat イメージ.tar |ドッカーロード 

4. データボリュームを移行する

Docker コンテナ内のデータ ボリュームは、コンテナ固有のデータが含まれる共有ディレクトリです。ボリューム内のデータは永続的であり、コンテナの再作成時に失われることはありません。

エクスポート ツールまたはコミット ツールを使用して Docker コンテナーまたはイメージをあるサーバーから別のサーバーに移行する場合、基礎となるデータ ボリュームは移行されません。

この場合、データを含むディレクトリは手動で新しいサーバーに移行されます。次に、新しいサーバー上にコンテナを作成し、そのディレクトリをデータ ボリュームとして参照します。

もう 1 つの簡単な方法は、「docker run」コマンドに「-volumes from」パラメータを渡してデータ ボリュームをバックアップおよび復元することです。

  1. docker run --rm --volumes-from データボリューム名 -v $(pwd):/backup イメージ名 tar cvf backup.tar /path-to-datavolume  

ここで、データボリューム名は /path/to/volume です。このコマンドは、データ ボリュームのバックアップを提供します。作業ディレクトリを指定するには、-w/backup を指定することもできます。 /backup フォルダに生成されたバックアップは、scp または ftp ツールを使用して新しいサーバーにコピーできます。コピーされたバックアップは抽出され、新しいコンテナのデータ ボリュームに復元されます。

  1. docker run --rm --volumes-from データボリューム名 -v $(pwd):/backup イメージ名 bash -c "cd /path-to-datavolume && tar xvf /backup/backup.tar --strip 1"  

5. Dockerコンテナ全体を移行する

ここで紹介したアプローチは、単一のコンテナに対して機能します。しかし、すべてのコンテナをあるサーバーから別のサーバーに移行する必要がある場合は、別のアプローチを採用します。

この方法では、docker ディレクトリ全体 (「/var/lib/docker」) を新しいサーバーにコピーします。このアプローチを成功させるには、いくつかの重要なポイントを特定する必要があります。

  • フォルダーの権限と所有権を保持します。
  • 移行前に Docker サービスを停止します。
  • 両方のサーバーの Docker バージョンに互換性があることを確認します。
  • 移行前と移行後にコンテナ リストと機能を検証します。
  • 環境変数およびその他の構成ファイルへのパス。

何らかの障害によりこの方法が機能しない場合は、コンテナとイメージをあるサーバーから別のサーバーに移行するためのカスタム スクリプトを構成します。

結論: Docker コンテナは、DevOps や Web ベースのホスティングで広く使用されています。今日は、Docker エンジニアが管理する Docker インフラストラクチャ内の別のサーバーに Docker コンテナを移行するさまざまな方法について説明しました。

※この記事は https://bobcares.com/blog/move-docker-container-to-another-host/ から翻訳したものです。著作権侵害があった場合は削除するためにご連絡ください

<<:  ICTとクラウドコンピューティングの主なトレンドはエッジコンピューティングになる

>>:  1つの記事で完了! Saga 分散トランザクションを 10 分で説明する

推薦する

結婚式を葬式に変えたヴァッティのワールドカップの巧妙なマーケティングは、血なまぐさい教訓となった

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っていますワールドカ...

ウェブマスターネットワークからの毎日のレポート:電子商取引の価格戦争が拡大、ビデオ業界は再び言葉の戦争に巻き込まれる

1. 電子商取引の価格競争は依然として拡大中:ニューエッグは利益率向上に3億元を投資業界が「史上最大...

Kubernetes の運用と保守 コンテナ アプリケーション リソースの運用と管理

[[416424]]この記事はWeChat公開アカウント「匠心独运维妙维效」から転載したもので、著者...

Robin Li: 人口ボーナスは消え、モバイルインターネットはボトルネックになり、未来は人工知能に依存するようになるでしょう!

昨日、百度連合サミットが雲南省大理市で開催されました。百度の創業者で会長兼CEOのロビン・リー氏はス...

3つの大手検索エンジンが競争していますが、どれがトップに立つのでしょうか?

業界で SEO 最適化について話すとき、最初に思い浮かぶのは Baidu SEO です。実際、中国市...

クラウドコンピューティング市場は2020年に飛躍的な成長を達成

2020 年は、パブリック クラウド ベンダーの収益が増加し、パンデミックによってデジタル変革のペー...

タオバオにはアプリランキングを不正に操作するオンラインストアが多数あり、1か月で5万件以上の取引がある

本紙(記者:賈中山)は、360社の携帯電話ソフトがアップルのApp Storeに登録されたと報じた。...

上位 15 社のハイブリッド クラウド プロバイダーはどのようなソリューションを提供していますか?

[51CTO.com クイック翻訳] ハイブリッドクラウドが企業にとって最適なクラウドであることに疑...

コミュニティ製品の衰退は、その強い生命力を証明しています!

QQ 製品は時代の流れに合わせて昼夜を問わず更新されており、模倣技術の多くはオリジナルの技術よりも優...

LightCloud - 国慶節 12% オフ/高防御 VPS+CN2 ネットワーク+ゴールデン シールド ファイアウォール「言葉では言い表せない」

LightCloudは現在、フランス、カナダ、韓国、香港のデータセンターでホスティングサービスを運営...

NameCheap-7周年記念/Webホスティング 1年間 7ドル/サーバー 100Tトラフィック

8 月 13 日は Namecheap の 7 周年記念日です。7 周年を記念して、1,000 の仮...

ソフトウェアの構築方法を再定義する方法を学ぶ

[51CTO.com からのオリジナル記事] ハイブリッド クラウドとマルチクラウドの時代が到来し、...

IBM は Redhat を 334 億ドルで買収します。これにより、クラウドの状況は完全に変わり、世界一のハイブリッド クラウド プロバイダーになります。

IBMがRED HATを買収し、クラウド業界に革命を起こし、世界一のハイブリッドクラウドプロバイダー...

新しいLinodeの簡単なレビュー

私は 2011 年に Linode を使い始めましたが、ウェブサイトに収入がないときに自分のお金を使...

サーバーレスが IT 環境に与える影響

ほとんどのユーザーは気付かないかもしれませんが、デジタル データ入力および交換サーバーは、データのア...