Dockerコンテナのエクスポートとインポートの実践ガイド

Dockerにおけるコンテナのエクスポートとインポートは、状態の移行、バックアップ、復元に広く利用される機能です。本記事では、これらの操作を詳細に解説します。

コンテナのエクスポート

コンテナのエクスポートとは、現時点のコンテナのファイルシステム内容を単一のアーカイブファイルに出力する処理です。ただし、環境変数やネットワーク設定などの構成情報やメタデータは含まれません。この操作には主に docker export コマンドを使用します。

手順

  1. コンテナの停止(推奨): エクスポート中にデータ変更が発生するのを防ぐため、実行中のコンテナを事前に停止します。
docker stop <container_name_or_id>
  1. エクスポートの実行: docker export でコンテナをtarアーカイブとして出力します。
docker export -o <output_tar_file.tar> <container_name_or_id>

パイプを使った直接出力も可能です。

docker export <container_name_or_id> > <output_tar_file.tar>

注意点

  • 出力されるtarファイルにはファイルシステムの内容のみが含まれ、コンテナの構成設定やメタデータは保存されません。
  • 完全なコンテナ環境(設定や依存サービスを含む)を移行する場合は、docker save/docker load によるイメージの保存・復元、あるいはDocker Composeを利用したマルチコンテナアプリケーションの構成記述が適しています。

コンテナのインポート

コンテナのインポートは、エクスポートされたtarファイル(スナップショット)をDockerの新しいイメージとして取り込む処理です。こちらは主に docker import コマンドを使用します。

手順

tarファイルを新しいイメージとしてインポートし、任意のリポジトリ名とタグを付与します。

docker import <input_tar_file.tar> <repository>:<tag>

具体例:

docker import redis-backup.tar myredis:latest

注意点

  • インポートされたtarファイルは新規イメージとして作成されるため、直接コンテナとして復元されるわけではありません。
  • 新しいイメージからコンテナを起動するには、別途 docker run を実行する必要があります。

まとめ

コンテナのエクスポートとインポートは、Dockerにおける柔軟なデータ移行およびバックアップ機構です。エクスポートによりコンテナのファイルシステム状態をファイル化し、異なる環境間での移動やバックアップが容易になります。一方、インポートによりスナップショットから迅速にイメージを生成し、状態の復元や新しいイメージの作成が可能です。ただし、エクスポート対象には構成情報やメタデータが含まれない点を理解し、完全な環境移行が必要な場合は、イメージの保存・復元やDocker Composeといった他の手法を併用することが推奨されます。

タグ: Docker コンテナ管理 バックアップ 移行 export

5月17日 21:21 投稿