このページで解説している内容は、以下の 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
」は、実行中のコンテナから新しいイメージを生成することもできます。しかし、実行中のコンテナを保存する場合はファイルの一貫性を確保するために注意が必要です。