为什么标签似乎与注册表的主机名紧密耦合?
Why does the tag appear to be tightly coupled to hostname of the registry?
我已经阅读了很多关于如何设置和使用我自己的私有 docker 注册表的教程。
让我难过的一件事是,我用来标记图像的标签似乎与注册表的主机名紧密相关。
docker tag <imageid> registry.mycompany.com:5000/myrepo:tag
docker push registry.mycompany.com:5000/myrepo:tag
这看起来确实有悖常理。如果注册表必须移动到不同的主机名会怎样?或者,如果我使用不同的主机名,无论我是否正在访问服务器 internally/externally?
对我来说更直观的是在 pushing/pulling:
时指定注册表
docker tag <imageid> myrepo:tag
docker push myrepo:tag --registry=registry.mycompany.com
docker pull myrepo:tag --registry=registry.mycompnay.com
这样做的理由是什么?我错过了什么关键信息?
the tag I'm tagging the image with, appears to be tightly coupled to the hostname of the registry.
不完全是:注册表用于 url 用于 pushing/pulling 图像的注册表服务器。
即使您更换了服务器,您用于 push/pull 的图像名称仍然相同,只是 url 发生了变化(如 library/registry
and docker/docker-registry
中所述)。
URL/registry 名称本质上是图像的 "namespace"。如果您不指定注册表,则假定图像属于 Docker Hub。实际上,这意味着 Docker Inc 控制了全局命名空间。
如果不这样做,您可能会在不同的主机上拥有两个完全不同的 "pushed" 同名图像,这是 Docker 想要避免的。
注册表服务器的移动是一个合理的问题,因此我建议您尝试使用域名而不是 IP 来注册您的注册表。
我已经阅读了很多关于如何设置和使用我自己的私有 docker 注册表的教程。
让我难过的一件事是,我用来标记图像的标签似乎与注册表的主机名紧密相关。
docker tag <imageid> registry.mycompany.com:5000/myrepo:tag
docker push registry.mycompany.com:5000/myrepo:tag
这看起来确实有悖常理。如果注册表必须移动到不同的主机名会怎样?或者,如果我使用不同的主机名,无论我是否正在访问服务器 internally/externally?
对我来说更直观的是在 pushing/pulling:
时指定注册表docker tag <imageid> myrepo:tag
docker push myrepo:tag --registry=registry.mycompany.com
docker pull myrepo:tag --registry=registry.mycompnay.com
这样做的理由是什么?我错过了什么关键信息?
the tag I'm tagging the image with, appears to be tightly coupled to the hostname of the registry.
不完全是:注册表用于 url 用于 pushing/pulling 图像的注册表服务器。
即使您更换了服务器,您用于 push/pull 的图像名称仍然相同,只是 url 发生了变化(如 library/registry
and docker/docker-registry
中所述)。
URL/registry 名称本质上是图像的 "namespace"。如果您不指定注册表,则假定图像属于 Docker Hub。实际上,这意味着 Docker Inc 控制了全局命名空间。
如果不这样做,您可能会在不同的主机上拥有两个完全不同的 "pushed" 同名图像,这是 Docker 想要避免的。
注册表服务器的移动是一个合理的问题,因此我建议您尝试使用域名而不是 IP 来注册您的注册表。