Dockerでイメージをインポート・エクスポートする

Dockerでイメージやコンテナをファイルにエクスポートして、またインポートする方法を紹介します。

Dockerには、コンテナを保存する exportコマンドと、イメージを保存する saveコマンドの2つがあります。

saveexportは、それぞれイメージとコンテナを圧縮ファイル(.tar)にまとめます。

イメージを保存する:save

Dockerのイメージに付随するメタ情報などを含めたイメージを保存します。sample-imageというイメージを保存する場合は、以下のようになります。

コンテナでの変更をイメージに反映する場合は、 commitをしてから保存します。

保存したイメージを読み込む

saveコマンドで保存したイメージは、 loadコマンドでDockerに取り込むことができます。

コンテナを保存する:export

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

保存したコンテナを読み込む

exportしたコンテナは、 importを使ってDockerにイメージとして取り込むことができます。オプションでレポジトリ名とタグを指定することができます。

example-container.tarをnew-imageというレポジトリ名でlatestタグをつけて取り込む。

saveとexportどちらを使うべきか

saveはイメージを保存、 exportはコンテナを保存という違いがあります。その上で、両者の違いとして大きいのはメタ情報を保存するかどうかという点にあります。

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

そのためファイルサイズは、 saveよりも exportのほうが小さくなります。


Welcome to UX MILK

UX MILKはより良いサービスやプロダクトを作りたい人のためのメディアです。

このサイトについて