Docker学习笔记六:基于save保存镜像与基于load加载镜像
为了防⽌镜像丢失,需要为某个特殊的镜像备份。并且在需要的时候,使⽤备份的⽂件进⾏镜像恢复。
将镜像保存到tar包
docker save⽤来将⼀个或者多个镜像保存为⼀个tar⽂件,默认标准输出流的⽅式输出,它的具体语法如下:
docker save [OPTIONS] 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 alpi
ne查看到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'
>docker打包镜像

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。