
【Docker基礎】イメージを持ち運ぶには(saveコマンド)
コンテナを“そのまま”コピーすることはできませんが、いったんイメージ化しておけば、別の環境へ移動・配布する方法がいくつかあります。そのうち、Docker レジストリを使わないでやり取りしたい場面では「docker save」コマンドが便利です。これを使うと、イメージを tar ファイルとして書き出し、ホストにファイルとして保管できます。

なぜ「docker save」が必要なのか?
- Docker レジストリ を経由しなくても、オフラインでイメージを受け渡しできる
- ネットワーク環境が限られている場合や、社内ルールで外部レジストリを使えない場合に最適
- エアギャップ環境(インターネットにつながらない場所)にもイメージを持ち込める
コマンドの基本
docker save -o <ファイル名.tar> <イメージ名>
-o <ファイル名.tar>
: 出力先のファイル名を指定(.tar
形式が主流)- イメージ名 : 書き出したいイメージ(例:
myapp:1.0
など)
tar ファイルを作成
docker save -o myapp.tar myapp:1.0
myapp:1.0
というイメージを- ホストに
myapp.tar
として書き出す
ファイル作成後、myapp.tar
がホスト側に存在し、これを USBメモリ や ファイル共有 などで別のマシンへ持ち運び可能です。

受け取ったファイルをイメージとして取り込む(load)
書き出した tar ファイルを Docker 環境 に読み込むには docker load
を使います。
docker load -i myapp.tar
-i
: インプットファイルとして.tar
を指定- 成功すると
Loaded image: myapp:1.0
のようなメッセージが表示され、docker image ls
にmyapp:1.0
が追加されます。
まとめ
- コンテナ自体はコピーできない → まず「自作イメージ」にして、
docker save
で書き出す docker save
: イメージを.tar
ファイルとしてエクスポートdocker load
:.tar
ファイルをイメージとしてインポート- 用途 : インターネットのない場所、社内環境、機密環境などでイメージを受け渡ししたい時に便利
次のコンテンツでは、「コンテナの改造」について解説します。コンテナ内で作業した内容をどう整理し、イメージに反映するか、といった高度なテクニックを見ていきましょう。