如何将图像从私有注册表推送到hub.docker.com?

时间:2017-06-27 11:59:29

标签: docker docker-registry dockerhub

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

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

问题

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

2 个答案:

答案 0 :(得分:2)

我认为唯一的方法就是全力以赴,然后重新推销它们并推送到hub.docker.com

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

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

答案 1 :(得分:0)

通过SSH访问您的注册表计算机,使用docker login登录您的Docker Hub帐户,为您的图像添加标记,指向Docker Hub docker tag my_own_registry.com/image:tag user/image:tag a然后使用{{推送新标记1}}。

@zigarn脚本可自动执行此任务。

修改:您评论说您的带宽不好,然后您可以通过ssh访问您的注册表计算机,使用docker push user/image:tag保存图片,然后将其复制到您的计算机并按docker save加载最后将其推送到Docker Hub,如上所述。

相关问题