有什么办法可以从私有注册表中提取图像并剪切 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
我有一些私有 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