Docker イメージをリポジトリを使わずにホスト間でコピーする方法 (日本語)
前提条件:
- 両方のホストに Docker がインストールされている。
- 両方のホストが同じネットワーク上にある (または、VPN または SSH トンネルを使用して接続されている)。
手順:
ソースホストでイメージをエクスポート:
docker save <image_name> > <image_name>.tar
<image_name>
: コピーしたいイメージの名前。<image_name>.tar
: エクスポートされたイメージのファイル名。
エクスポートされたイメージをターゲットホストに転送:
- ローカルネットワーク:
scp <image_name>.tar <target_host_username>@<target_host_ip>:<destination_path>
<target_host_username>
: ターゲットホストのユーザー名。<target_host_ip>
: ターゲットホストの IP アドレス。<destination_path>
: ターゲットホストでの保存先のパス。
- SSH トンネル:
ssh -L 2222:localhost:22 <target_host_username>@<target_host_ip> scp -P 2222 <image_name>.tar localhost:<destination_path>
-L 2222:localhost:22
: ローカルポート 2222 をターゲットホストのポート 22 にマッピングします。
- ローカルネットワーク:
ターゲットホストでイメージをロード:
docker load < <image_name>.tar
docker save
はイメージを tar アーカイブ形式にエクスポートします。docker load
は tar アーカイブからイメージをインポートします。scp
はセキュアコピープロトコルを使用してファイルを転送します。- SSH トンネルは、ファイアウォールの制限やネットワーク構成の問題を回避するために使用できます。
ソースホスト (ホストA):
# イメージをエクスポート
docker save my_image > my_image.tar
# ターゲットホスト (ホストB) に転送 (ローカルネットワークの場合)
scp my_image.tar user@hostB:/path/to/destination
ターゲットホスト (ホストB):
# イメージをロード
docker load < my_image.tar
Docker イメージ オフライン転送
# イメージをエクスポート
docker save my_image > my_image.tar
# イメージを圧縮 (オプション)
gzip my_image.tar
# イメージを USB ドライブまたは他のオフラインメディアにコピー
# イメージをオフラインメディアからコピー
# イメージを解凍 (必要に応じて)
gzip -d my_image.tar.gz
# イメージをロード
docker load < my_image.tar
gzip
はファイルを圧縮します。
Docker Compose
- Docker Compose ファイルを使用して、複数のサービスを定義し、それらのサービスに必要なイメージを指定します。
- Docker Compose ファイルをターゲットホストに転送し、
docker-compose up
コマンドを実行することで、必要なイメージを自動的にダウンロードして起動します。
Docker Swarm
- Docker Swarm を使用して、複数のホストをクラスタとして管理します。
- イメージをクラスタ内のリポジトリにプッシュし、ターゲットホストでイメージをプルすることで、クラスタ内のホスト間でイメージを共有できます。
Docker Hub
- Docker Hub は、Docker イメージを公開するためのプラットフォームです。
- イメージを Docker Hub に公開し、ターゲットホストでイメージをプルすることで、インターネット経由でイメージを転送できます。
Docker Registry
- Docker Registry は、Docker イメージを保存するためのプライベートなリポジトリです。
- イメージをプライベートな Docker Registry にプッシュし、ターゲットホストでイメージをプルすることで、プライベートネットワーク内でイメージを転送できます。
- Docker Hub のオフラインモードを使用することで、インターネット接続なしでイメージをダウンロードできます。
- Docker Hub のオフラインモードを有効にし、イメージをダウンロードしてターゲットホストに転送します。
docker