为什么标签似乎与registry的主机名紧密耦合?
我一直在阅读很多关于如何设置和使用我自己的私人dockerregistry的教程。
有一件事让我难以接受,就是我用标签来标记图像的标签似乎与registry的主机名紧密相连。
docker tag <imageid> registry.mycompany.com:5000/myrepo:tag docker push registry.mycompany.com:5000/myrepo:tag
这似乎是非常直观的。 如果registry必须移动到不同的主机名,会发生什么情况? 或者如果我使用不同的主机名,无论我是否在内部/外部访问服务器?
对我来说更直观的是在推/拉时指定registry:
docker tag <imageid> myrepo:tag docker push myrepo:tag --registry=registry.mycompany.com docker pull myrepo:tag --registry=registry.mycompnay.com
这是什么理由? 我错过了哪些关键信息?
URL /registry名称本质上是图像的“名称空间”。 如果您不指定registry,则认为该映像属于Docker Hub。 实际上,这意味着Docker Inc控制全局名称空间。
如果没有这样做,可以在具有相同名称的单独主机上有两个完全不同的“推送”图像,这是Docker想要避免的。
注册服务器的移动是一个有效的担心,所以我build议你尝试使用域名而不是IPregistry。
标记图像的标签似乎与registry的主机名紧密耦合。
不完全是:registry用于推送/拉出图像的registry服务器的URL。
即使您更改了服务器,您将用于推/拉的图像名称仍然是相同的,只有url更改(如library/registry
和docker/docker-registry
)。