首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将镜像从私有仓库推送到hub.docker.com?

如何将镜像从私有仓库推送到hub.docker.com?
EN

Stack Overflow用户
提问于 2017-06-27 19:59:29
回答 2查看 746关注 0票数 0

我正在将一个项目从一个私有注册表迁移到hub.docker.com,但我的计算机上并没有所有标记的映像。

我可以通过SSH访问注册表机器。

问题

如何将所有注册表镜像推送到hub.docker.com?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-06-27 20:06:40

我认为唯一的方法是将它们全部提取出来,然后重新标记它们并推送到hub.docker.com

您可以使用如下内容编写脚本:

代码语言:javascript
复制
for repository in $(curl -s http://localhost:5000/v2/_catalog | jq -r '.repositories[]'); do
  for image in $(curl -s http://localhost:5000/v2/${repository}/tags/list | jq -r '(.name + ":" + .tags[])')
    docker image pull localhost:5000/${image}
    docker image tag localhost:5000/${image} <YOUR_HUB_PREFIX>/${image}
    docker image push <YOUR_HUB_PREFIX>/${image}
    # if you need some cleanup
    docker image rm localhost:5000/${image} <YOUR_HUB_PREFIX>/${image}
  done
done
票数 2
EN

Stack Overflow用户

发布于 2017-06-27 20:07:30

通过SSH访问您的注册表机器,使用docker login在您的Docker Hub帐户内登录,向您的映像添加指向Docker Hub docker tag my_own_registry.com/image:tag user/image:tag a的标签,然后使用docker push user/image:tag推送新标签。

@zigarn脚本自动执行此作业。

编辑:你评论说你的带宽不好,然后你可以通过ssh访问你的注册表机器,使用docker save保存你的镜像,然后将它复制到你的机器上,并通过docker load加载它,最后像上面解释的那样将它推送到Docker Hub。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44779757

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档