便利ツール

dockerイメージやコンテナのインポートとエクスポート

docker のイメージやコンテナをファイルにエクスポート、ファイルからインポートする方法を紹介します。
イメージやコンテナを簡単に他のパソコンへ移動できるので、環境などの移動が楽になります。

docker には、イメージを保存する save コマンドと、コンテナを保存する export コマンドがあります。
保存されるファイル形式は、圧縮ファイル .tar にまとめられます。

ここでは、以下で紹介したイメージとコンテナを使って解説します。

 

docker image を保存・読込

イメージの保存(save)

 save の構文
docker save [オプション] イメージ名

docker イメージに付随するメタ情報を含めたイメージをファイルに保存します。
scue/docker-opengrok というイメージを保存する場合は、以下のコマンドを実行します。

 docker-save
$ sudo docker save scue/docker-opengrok > docker-opengrok.tar

どのようなイメージがあるかどうかは「$ sudo docker images」で確認できます。

 

イメージの読込(load)

docker save で保存したイメージは、load コマンドを使って docker image として読込みできます。

 docker-load
$ sudo docker load < docker-opengrok.tar

 

docker container を保存・読込

コンテナの保存(export)

 export の構文
docker export [オプション] コンテナ名|コンテナID

docker のコンテナを保存します。
docker のメタ情報などは保存されず、ファイルシステムのコピーがそのまま保存されます。

opengrok のコンテナを保存する場合は、以下のコマンドを実行します。

 docker-export
$ sudo docker export opengrok > opengrok.tar

どのようなコンテナがあるかは「$ sudo docker ps」で確認できます。

 

コンテナの読込(import)

 import の構文
docker import ファイル - [リポジトリ[:タグ]]

docker export で保存したコンテナは、import コマンドを使って docker container として読込みます。
ファイルシステムを .tar で圧縮したファイルも、コンテナとして読込みできます。

 docker-import
$ cat opengrok.tar | docker import - opengrok:v1.0.7

 

docker save / load / export / import まとめ

docker イメージを保存・読込するのは「saveload」を、
docker コンテナを保存・読込するのは「exportimport」を使います。

docker のイメージは、ファイル差分がレイヤが重なるような構成となっており、
save はレイヤの情報(メタ情報)なども含めた状態で保存されます。
一方、 export はメタ情報は保存されず、ファイルシステムだけが保存されます。

 

参考

 

こちらの記事もよく読まれています

  • この記事を書いた人
  • 最新記事
SANACHAN

SANACHAN

「生涯一エンジニア」を掲げ、大手グローバル企業でSE/PGとして8年勤め、キャリアアップ転職した現役のエンジニアです。世にあるメジャーな全プログラム言語(コボル除く)を自由に扱えます。一児の父。自分のため、家族のため、日々勉強してます。システムエンジニア、プログラミングに関する情報を蓄積している雑記帳です。

-便利ツール
-, , , , ,