docker save / load の使い方

イメージをファイルにする・戻す

書き方

docker save -o ファイル.tar イメージ...
docker save イメージ > ファイル.tar
docker load -i ファイル.tar
docker load < ファイル.tar

イメージを 1 つのファイル(tar)に書き出し、レジストリを使わずに別のサーバーへ運べます。load で読み込むと、名前(タグ)も戻ります。

よく使うオプション

オプション意味
-o ファイル(save)書き出すファイル(付けないと標準出力に出す)
-i ファイル(load)読み込むファイル(付けないと標準入力から読む)
-q(load)進み具合を出さない

例

$ docker save -o app.tar myapp:1.0

myapp:1.0 を app.tar という 1 つのファイルに書き出します。

$ docker load -i app.tarLoaded image: myapp:1.0

別のサーバーで、ファイルからイメージを読み込みます。名前とタグも戻ります。

$ docker save myapp:1.0 | gzip > app.tar.gz

書き出しながら gzip で縮めます。load は gzip のままのファイルも読めます。

$ docker save myapp:1.0 | ssh user@server docker load

ファイルを作らずに、ssh で別のサーバーへそのまま送って読み込ませます。レジストリを使わずに配るときの形です。

よくある間違い・注意

  • save はイメージ、export はコンテナの中のファイルだけを書き出します。export したものは import で戻し、名前や CMD は戻りません。
  • 名前ではなく IMAGE ID で save すると、load したときに名前が付きません。

実際に打って練習する

Docker コースの Lv64「荷を箱詰めする docker save と load」で覚えます(第8章 港の守り(本番運用))。ブラウザの中のシミュレーターで、本物と同じように打って確かめられます。

Lv1〜7 はログインすると無料で試せます(それより先はゴールド以上のプランで遊べます)。

Docker コマンド一覧(使い方と例)へ戻る