前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >没有Docker仓库还能分发镜像吗?

没有Docker仓库还能分发镜像吗?

作者头像
用户1560186
发布2019-11-19 20:42:07
9330
发布2019-11-19 20:42:07
举报
文章被收录于专栏:运维录


首先明确的是建议优先使用Docker仓库,特别是对于Docker集群而言 Docker仓库非常重要,但是某些应用场景下比如单机环境下使用docker-compse编排应用,如果没有镜像仓库是不是就不能把docker镜像分发给其它的主机了呢?

答案是否定的,对于这种单机或者小规模环境,我们可以使用 docker save 与 docker load 命令来完成镜像的分发,甚至通过Linux ssh 与管道技术相结合,可以直接把镜像分发给目标主机。

总而言之当遇到上述环境而且没有镜像仓库时,需要把一台机器上的镜像拷贝到另一台机器,试试 docker save 与 docker load 命令吧。


举个栗子

  1. HOST A 导出并压缩docker 镜像

docker save centos | gzip > img-centos.tar.gz scp img-centos.tar.gz root@hostb:/root/

  1. HOST B 导入镜像

gzip -dc img-centos.tar.gz | docker load

  1. 批量操作

如果你需要批量导出/导入镜像,可以结合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


命令帮助

  1. save 命令
  1. load命令


扩展

结合 ssh 与 pv 命令的话,利用 Linux强大的管道,只用一个命令完成从一个机器将镜像分发到另一台机器。

注意 pv 命令用于显示进度条,你可能需要单独安装这个命令。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-08-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维录 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档