代码之家  ›  专栏  ›  技术社区  ›  Édouard Lopez

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

  •  0
  • Édouard Lopez  · 技术社区  · 7 年前

    我正在将一个项目从私人注册表迁移到 hub.docker.com 但我在电脑上并没有所有的标签图片。

    问题

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

    2 回复  |  直到 7 年前
        1
  •  2
  •   zigarn    7 年前

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

    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
  •  0
  •   kstromeiraos    7 年前

    通过SSH访问注册表计算机,使用 docker login docker tag my_own_registry.com/image:tag user/image:tag a然后使用 docker push user/image:tag

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

    编辑:你评论说你的bandwith坏了,然后你可以通过ssh访问你的注册表机器,用 docker save docker load 最后将其推送到Docker Hub,如上所述。