有什么办法可以从私有注册表中提取图像并剪切 URL?

Is there any way to pull an image from private registry and cut URL?

我有一些私有 Docker 注册表:http://some-registry-somewhere.com:5000.

当我需要运行我的组合配置时,我需要拉取目标图像。

$ docker pull some-registry-somewhere.com:5000/target/image:tag1

docker-compose.yml 文件中,我必须设置相同的完整 URL-path 因为有拉取的图像 some-registry-somewhere.com:5000/target/image:tag1.

如果只有图片名称,我们可以标记它:

$ docker tag some-registry-somewhere.com:5000/target/image:tag1 target/image:tag1

但是有没有办法通过Docker自动切割Docker注册表URL?

由于API规范,没有这种方法。镜像名称不仅仅是标签,它还为 docker 引擎标识,应该使用哪个注册表来推送和拉取此镜像。

而第一个 some-registry-somewhere.com:5000/target/image:tag1 是位于 some-registry-somewhere.com:5000 中的图像 target/image:tag1

第二个 target/image:tag1 换句话说,是图像 docker.io/target/image:tag1,它位于官方存储库中。

事实上,在大多数情况下它们可能不同。

一种方法,实际上并不好,因为可能会造成混淆(再次查看存储库),就是使用 &&:

docker pull some-registry-somewhere.com:5000/target/image:tag1 && docker tag some-registry-somewhere.com:5000/target/image:tag1 target/image:tag1