出版

アフィリエイトリンクまたはスポンサーシップを通じて、ベンダーから収益を得る場合があります。これにより、サイト上の商品配置が影響を受ける可能性がありますが、レビューの内容には影響しません。詳細は利用規約をご覧ください。
Docker コンテナをあるホストから別のホストに移動する必要がある場合は、エクスポート/インポート機能を使用してそれを実行する方法を次に示します。
Docker がスムーズに動作し、サーバー上に複数のコンテナを作成しました。しかし、これらのコンテナをあるホストから別のホストに移動したい(または移動する必要がある)場合はどうすればよいでしょうか?コンテナのベースとなるイメージを Docker Hub にプッシュし、そのイメージをプルダウンしてコンテナを再構築する方法があります。あるいは、コンテナをエクスポートし、エクスポートしたファイルを対象のマシンに移動して、そのコンテナをインポートする方法もあります。
簡単そうに聞こえますか?いいえ、本当に簡単です。コンテナのエクスポートとインポートの手順を詳しく説明します。これで、コンテナが想像以上にポータブルになることを確信できます。この作業は、特にDockerサーバーに障害が発生し始めた場合や、コンテナをより強力なハードウェアに移行したい場合などに非常に役立ちます。
理由に関係なく、プロセスを順に見ていきましょう。
コンテナの一覧表示
まず最初に、コンテナをリストアップする必要があります。コンテナは名前でエクスポートするため、コンテナの名前を知っておく必要があります。これを行うには、コマンドdocker ps -aを実行します。出力結果には NAME 列(図A)が含まれます。この列にエクスポート用の名前が表示されます。
図A
コンテナのエクスポート
転送を容易にするため、コンテナをgzipファイルにエクスポートします。コンテナをエクスポートするコマンドは次のとおりです。
docker export NAME | gzip > NAME.gz
ここで、NAME はエクスポートするコンテナの名前です。これで、ファイルを移動してインポートする準備が整いました。
コンテナのインポート
エクスポートと同様に、コンテナを1つのコマンドでインポートします。もちろん、これを行う前に、エクスポートしたファイルを新しいサーバーに移動する必要があります。これは、scpコマンドを使用して次のように実行できます。
scp NAME.gz USERNAME@SERVER_IP:/home/USERNAME
ここで、NAME はファイル名、USERNAME はリモート サーバー上のユーザー名、SERVER_IP はリモート サーバーの IP アドレス、USERNAME は (これも) リモート サーバー上のユーザー名です。
これが完了すると、次のコマンドでインポートを処理できるようになります。
zcat NAME.gz | docker import - NAME
ここで、NAMEはコンテナの名前です。新しくインポートしたコンテナは、次のようなコマンドで実行できます。
docker run -i -t NAME /bin/bash
ここで、NAME はコンテナの名前です。
コンテナのコマンドプロンプトが開き、コンテナの操作が可能になります。コンテナのインポートが完了しました。コンテナを終了するには、exitコマンドを実行してください。
コンテナの移動が簡単
Dockerのエクスポートとインポート機能を使うのは、コンテナをホスト間で移動する最も簡単な方法の一つです。また、コンテナのバックアップにも最適です(ここでは「シェルスクリプト」をイメージしてください)。しかし、これはまた別の機会にお話ししましょう。
コンテナの移動を楽しんでください!
こちらもご覧ください
- WindowsにDockerをインストールして使用する方法
- Dockerでクリーンアップタスクを実行する4つのヒント
- boot2docker を使って Docker テスト プラットフォームを素早く立ち上げる方法
- Dockerログの操作方法
- 70以上の演習でPythonを学ぶ
- Dockerのセキュリティが弱いと、コンテナの効率化により脆弱性が拡大する可能性がある

ジャック・ウォーレン
ジャック・ウォーレンは、TechRepublic、The New Stack、Linux New Mediaなどで受賞歴のあるライターです。20年以上にわたり様々なトピックを執筆し、オープンソースの熱心な推進者でもあります。ジャック・ウォーレンに関する詳細は、ウェブサイトjackwallen.comをご覧ください。