先使用一个最简单 hello-world 镜像测试备份
docker pull hello-world
# 备份 hello-world 镜像
docker save hello-world:latest > hello.tar
可以使用 vim
只读查看 hello.tar 包
vim hello.tar
Load
镜像恢复操作
# 先删除 hello-world 镜像
docker rmi -f hello-world:latest
# 恢复 镜像备份
docker load < hello.tar
# 检查镜像
sudo docker images
docker history hello-world:latest
IMAGE CREATED CREATED BY SIZE COMMENT
d1165f221234 6 months ago /bin/sh -c #(nop) CMD ["/hello"] 0B
<missing> 6 months ago /bin/sh -c #(nop) COPY file:7bf12aab75c3867a… 13.3kB
我们也可以来一个有难度的操作,在宿主机上运行 hello
tar xf hello.tar
tar xf a803ca04f00ecd1c10fb4978f7a963d1461f4225e568901bc6990cb46a3e04be/layer.tar
chmod +x ./hello
./hello
当然我们也可以直接找到 hello
运行
apt install locate
updatedb
locate diff/hello
/var/lib/docker/overlay2/155b07ae99486db146069331596201221591f2f173f231df9f688eae70730572/diff/hello
Docker使用gzip压缩导出/导入镜像
导出镜像
docker save name:tag | gzip > name_tag.tar.gz
导入镜像
gunzip -c name_tag.tar.gz | docker load