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 はログインすると無料で試せます(それより先はゴールド以上のプランで遊べます)。