ウェブエンジニア珍道中

日々の技術的に関する経験を書いていきます。脱線もしますが助けになれば幸いです。

dockerのimageを.tarにエクスポートする

imageをファイルにエクスポートしておきたいなーって事があり、ちょうど良かったのがあったので覚え書きします。

エクスポート

docker save [repository]:[tag] > [好きな名前].tar

これでエクスポートができます。repositoryとtag両方指定しないと、インポート時に[none]となってしまうので注意です。

例:

docker save nginx:latest > image.tar

複数指定もできます。

docker save nginx:latest redis:latest > image.tar

インポート

docker load < [エクスポートしたファイル名].tar

これで完了します。お手軽ですね。

例:

docker load < image.tar

全imageをエクスポートしたい時

docker images --formatを使ってrepository:tagの形で渡してあげます。

docker save $(docker images --format "{{.Repository}}:{{.Tag}}") > images.tar

docker images -qでIDを渡しても良いのですが、loadの際に全てが[none]となり地獄待ったなしです。

インポートの方法は変わりません。

サクッとできたので、バックアップなど必要になった際は是非お使い下さい。(dockerhubに上げれば良いとか言わない)