このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

【Docker入門】コンテナのエクスポートとインポート

 コンテナのエクスポートとインポートは、Dockerを使用してコンテナをイメージに変換するプロセスです。以下にそれぞれの手順とコマンドについて解説します。

コンテナのエクスポートとインポート

 Dockerコンテナをイメージに変換するプロセスは、コンテナのエクスポートとインポートの2つのステップに分かれます。

 まず、「docker container export」コマンドを使用してコンテナをファイルシステムのアーカイブとしてエクスポートし、次に「docker container import」コマンドを使用してそのアーカイブから新しいイメージを作成します。

docker container export」コマンド

 このコマンドは、コンテナのファイルシステムをアーカイブとしてエクスポートし、ローカルに保存します。

【構文】
docker container export [コンテナ名] > [保存先ファイル名.tar]

ローカルにコンテナを保存

コンテナをローカルに保存していきます。

まず、作業ディレクトリに移動しておきます。

・「cd desktop/docker」コマンドで作業ディレクトリに移動します。

PS C:\Users\joeac> cd desktop/docker
PS C:\Users\joeac\Desktop\docker>

ローカルにあるコンテナを確認します。

・「docker container ls -a」コマンドを実行します。

PS C:\Users\joeac\Desktop\docker> docker container ls -a
CONTAINER ID   IMAGE                            COMMAND                    CREATED        STATUS                     PORTS     NAMES
976733da661c   infralinux1/centos-smp-img:1.0   "/bin/bash"                14 hours ago   Exited (255) 3 hours ago             centos-smp
9f1ab24c7b87   infralinux1/ubuntu-smp:1.0       "/bin/sh -c 'echo \"H…"   14 hours ago   Exited (0) 14 hours ago              serene_pare

コンテナの保存

以下のコマンドを実行します。

  • 「docker container export centos-smp > centos-smp2.tar」コマンド
  • 「docker container export serene_pare > ubuntu-smp2.tar」コマンド
PS C:\Users\joeac\Desktop\docker> docker container export centos-smp > centos-smp2.tar
PS C:\Users\joeac\Desktop\docker> docker container export serene_pare > ubuntu-smp2.tar

・「ls」コマンドで、保存したtarファイルを確認します。

「centos-smp2.tar」と「ubuntu-smp2.tar」ファイルがあることが確認できます。

PS C:\Users\joeac\Desktop\docker> ls

    Directory: C:\Users\joeac\Desktop\docker

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a---          2024/03/17    15:30      238586880 centos-smp-img.tar
-a---          2024/03/17    17:15      238572544 centos-smp2.tar
-a---          2024/03/13     0:04             36 Dockerfile
-a---          2024/03/16     1:43             15 sample.txt
-a---          2024/03/17    15:31       80421376 ubuntu-smp.tar
-a---          2024/03/17    17:24       80414720 ubuntu-smp2.tar

docker container import」コマンド

 「docker container import」コマンドは、エクスポートされたコンテナのアーカイブから新しいイメージを作成します。保存したコンテナをイメージとして読み込みます。

【構文】
docker container import [保存されたファイル名.tar] [新しいイメージ名]

保存したコンテナをイメージとして読み込む

ローカルにコンテナをイメージとして読み込みます。

以下のコマンドを実行します。

  • 「docker image import centos-smp2.tar centos-smp2」コマンド
  • 「docker image import ubuntu-smp2.tar ubuntu-smp2」コマンド
PS C:\Users\joeac\Desktop\docker> docker image import centos-smp2.tar centos-smp2
sha256:d0cd5d385b537f712ecf8d22367dc3a3362e031537a98462a45f1004495a9b98
PS C:\Users\joeac\Desktop\docker> docker image import ubuntu-smp2.tar ubuntu-smp2
sha256:7cace2eb36a9ded5ecdc2b7292cfecc22225bd29f88c016efa98189dfac551a5

読み込んだイメージを確認します。

・「docker container ls」コマンドを実行します。

「centos-smp2」と「ubuntu-smp2」のイメージが生成されていることが確認できます。

PS C:\Users\joeac\Desktop\docker> docker image ls
REPOSITORY                   TAG       IMAGE ID       CREATED          SIZE
ubuntu-smp2                  latest    7cace2eb36a9   23 seconds ago   77.9MB
centos-smp2                  latest    d0cd5d385b53   37 seconds ago   231MB
infralinux1/centos-smp-img   1.0       303fb5d5c2a9   40 hours ago     231MB
infralinux1/ubuntu-smp       1.0       9a9568f10c24   2 weeks ago      77.9MB

まとめと注意事項

「save」と「load」 はイメージの保存と読み込み

docker image save」と「docker image load」はイメージの保存と読み込みを行います。

「export」と「import」 はコンテナ保存と読み込み

「docker container export」と「docker container import」はコンテナの保存と読み込みを行います。

 「docker container export」と「docker container import」は、実行中のコンテナから新しいイメージを生成することもできます。しかし、実行中のコンテナを保存する場合はファイルの一貫性を確保するために注意が必要です。