Docker学习笔记六:基于save保存镜像与基于load加载镜像

为了防止镜像丢失,需要为某个特殊的镜像备份。并且在需要的时候,使用备份的文件进行镜像恢复。

将镜像保存到tar包

docker save用来将一个或者多个镜像保存为一个tar文件,默认标准输出流的方式输出,它的具体语法如下:

docker save [OPTIONS] IMAGE [IMAGE...]

其中:

  • docker save:Docker将镜像保存到tar包的命令关键词;
  • OPTIIONS:命令选项,-o指定写到一个文件中,而不是标准输出流中;
  • IMAGE: 需要保存到tar包的镜像,可以指定多个,用空格隔开。

例如,将alpine:latest镜像保存到tar包,对应的语句如下:

docker save alpine:latest > alpine.tar

或者

docker save -o alpine:lateste alpine.tar

如果想要将多个镜像保存到tar包,例如将alpine:latest和ubuntu:latest保存到tar包,对应的语句如下:

docker save alpine:latest ubuntu:latest > image.tar

从tar包加载镜像

docker load使用docker save保存的tar文件加载镜像,它的具体语法如下:

docker load [OPTIONS]

其中:

  • docker load:Docker从tar包加载镜像的命令关键词;
  • OPTIIONS: 命令选项,-i指定从一个tar文件中读取,而不是标准输入流中。

例如,从alpine.tar中加载镜像,对应的语句如下:

docker load < alpine.tar

或者

docker load -i alpine.tar

如果一个tar包中包含多个镜像,那么会将这些镜像全部到加载进来。

实例

假设想要将本机的alpine镜像传到另一台机器,首先,在本机执行docker save alpine > alpine-latest.tar将alpine镜像保存成一个tar文件。

[root@localhost dir1]# docker save alpine > alpine-latest.tar
[root@localhost dir1]# ls
alpine-latest.tar

然后我们将alpine-latest.tar文件复制到了到了另一个机器上,然后在该机器上执行docker load < alpine-latest.tar,这样就可以使用tar包将镜像加载进来了。如下图所示,可以通过docker images alpine查看到alpine:latest镜像。

[root@localhost tempdir]# docker load < alpine-latest.tar
5bef08742407: Loading layer 4.221 MB/4.221 MB
Loaded image: alpine:latest
[root@localhost tempdir]#docker images alpine 
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
alpine              latest              7328f6f8b418 

如果我们结合这两个命令以及ssh甚至pv的话,利用 Linux强大的管道,我们可以写一个命令完成从一个机器将镜像迁移到另一个机器,并且带进度条的功能:

docker save <镜像名> | bzip2 | pv | ssh <用户名>@<主机名> 'cat | docker load'
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值