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

【Docker入門】イメージのローカル保存と読込

 イメージのローカルホストへの保存と読み込みは、Dockerを使用してイメージを操作する際によく行われるタスクです。以下にそれぞれの手順とコマンドについて解説していきます。

ローカルへのイメージ保存と読み込み

 Dockerイメージをローカルホストに保存するためには、「docker image save」コマンドを使用します。また、保存したイメージを読み込むには「docker image load」コマンドを使用します。Dockerはイメージをtarファイルの形式で保存および読み込みます。これは標準的なアーカイブ形式です。

docker image save」コマンド

このコマンドは、指定したイメージをtarファイルにして、ローカルに保存します。

【構文】
docker image save -o [保存先ファイル名.tar] [イメージ名]

イメージをローカルへ保存

イメージをローカルに保存していきます。

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

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

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

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

  • 「docker image save -o centos-smp-img.tar infralinux1/centos-smp-img」コマンド
  • 「docker image save -o ubuntu-smp.tar infralinux1/ubuntu-smp」コマンド
PS C:\Users\joeac\Desktop\docker> docker image save -o centos-smp-img.tar infralinux1/centos-smp-img
PS C:\Users\joeac\Desktop\docker> docker image save -o ubuntu-smp.tar infralinux1/ubuntu-smp

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

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

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

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

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

docker image load」コマンド

このコマンドは、tarファイルからイメージを読み込み、ローカルのDockerイメージリポジトリにインポートします。

【構文】
docker image load -i [保存されたファイル名.tar]

ローカルへのイメージの読み込み

イメージをローカルに読み込んでいきます。

ここで、一旦、ローカルにあるDockerイメージをすべて強制削除しておきます。

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

  • 「docker image rm -f infralinux1/centos-smp-img:1.0」コマンド
  • 「docker image rm -f infralinux1/ubuntu-smp:1.0」コマンド
PS C:\Users\joeac\Desktop\docker> docker image rm -f infralinux1/centos-smp-img:1.0
Untagged: infralinux1/centos-smp-img:1.0
Untagged: infralinux1/centos-smp-img@sha256:000101fbf47c44603b193896b78edb46a78d5972b215ba9b9d091ee23a69a527
Deleted: sha256:303fb5d5c2a92645a859ac2ededb0294e0b9b4c019771c99f57a200fd997726d
PS C:\Users\joeac\Desktop\docker> docker image rm -f infralinux1/ubuntu-smp:1.0
Untagged: infralinux1/ubuntu-smp:1.0
Untagged: infralinux1/ubuntu-smp@sha256:e3be8338a6f55fb6f16d5a56a6eff6cb1a5b3ffce19f0bcbf151f64d8e50cc9c
Deleted: sha256:9a9568f10c243fe5494ae055466dfb32a286395bd65a78c14d860d6631c24af3

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

  • 「docker image load -i centos-smp-img.tar」コマンド
  • 「docker image load -i ubuntu-smp.tar」コマンド
PS C:\Users\joeac\Desktop\docker> docker image load -i centos-smp-img.tar
Loaded image: infralinux1/centos-smp-img:1.0
PS C:\Users\joeac\Desktop\docker> docker image load -i ubuntu-smp.tar
Loaded image: infralinux1/ubuntu-smp:1.0

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

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

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

tarファイルとは

ここで、tar ファイルについて補足しておきます。

 tarファイルとは、複数のファイルを1つのアーカイブにまとめるためのファイル形式です。通常、ファイルやディレクトリの階層構造を保持しつつ、データを圧縮せずにまとめることができます。Dockerでは、イメージやコンテナをtarファイルにエクスポートすることで、データのバックアップや転送が容易になります。