dockerを使用していると、自分のPCのdockerイメージを別のPCに持って行って使用したいということがたまにあります。
イメージのファイルがどこかに保存されているはずだから、それをコピーしちゃえば良いと思いやってみると
# dockerイメージがあるフォルダに移動 $ cd /var/lib/docker/ -bash: cd: /var/lib/docker/: Permission denied
Permission deniedで怒られてしまいアクセスできません。。
ということで色々と調べてみると、dockerイメージの保存と反映はdockerコマンドでやることが分かりました。
1.dockerイメージを保存する
私のPCのイメージ一覧に登録されているbusyboxのイメージを保存する方法で説明します。
# 登録されているイメージ一覧を確認 $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE busybox 1.34.1 7a80323521cc 11 days ago 1.24MB # 保存したいリポジトリ名とタグを指定してsave $ docker save busybox:1.34.1 > busybox.tar # 保存されたか確認 $ ls busybox.tar
ちなみに、同じリポジトリ名のイメージが複数登録されている場合、タグ指定しないと同じリポジトリ名のイメージがまとめられて保存されます。
1つだけ保存したい場合はタグ指定してください。
# 複数busyboxのリポジトリがあるとまとめられて保存される $ docker save busybox > busybox.tar # タグ指定してるので1つだけ保存される $ docker save busybox:1.34.1 > busybox.tar
これでイメージの保存は完了です。
2.dockerイメージを反映する
1で保存したdockerイメージファイル(.tar)を反映したいPCにコピーして、以下のコマンドを実行してください。
# tarファイルからロードする $ docker load < busybox.tar 084326605ab6: Loading layer [==================================================>] 1.463MB/1.463MB Loaded image: busybox:1.34.1 # 反映できたか確認 $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE busybox 1.34.1 7a80323521cc 11 days ago 1.24MB
これで無事にdockerイメージの保存と反映ができました。