壹
首先明确的是建议优先使用Docker仓库,特别是对于Docker集群而言 Docker仓库非常重要,但是某些应用场景下比如单机环境下使用docker-compse编排应用,如果没有镜像仓库是不是就不能把docker镜像分发给其它的主机了呢?
答案是否定的,对于这种单机或者小规模环境,我们可以使用 docker save 与 docker load 命令来完成镜像的分发,甚至通过Linux ssh 与管道技术相结合,可以直接把镜像分发给目标主机。
总而言之当遇到上述环境而且没有镜像仓库时,需要把一台机器上的镜像拷贝到另一台机器,试试 docker save 与 docker load 命令吧。
贰
举个栗子
docker save centos | gzip > img-centos.tar.gz scp img-centos.tar.gz root@hostb:/root/
gzip -dc img-centos.tar.gz | docker load
如果你需要批量导出/导入镜像,可以结合shell 命令与管道完成。
批量导出
for i in
docker images | awk '/irm/ {print $3}'
;do echo $i ; docker save $i | gzip > ${i}.gz ;sleep 2 ;done
其中awk 匹配镜像名称的关键字,print $3 输出第三个字段也就是镜像ID。
批量导入
for i in
ls
; do echo $i; gzip -dc $i | docker load ; sleep 5;done
叁
命令帮助
肆
扩展
结合 ssh 与 pv 命令的话,利用 Linux强大的管道,只用一个命令完成从一个机器将镜像分发到另一台机器。
注意 pv 命令用于显示进度条,你可能需要单独安装这个命令。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有