使用私有注册表的Docker Pull / Push不带前缀

Mor*_*enB 4 docker nexus3

我们正在使用Nexus3泊坞窗组(将dockerhub代理和私有注册表结合使用),又名:

docker pull dockerproxy:5002/busybox
Run Code Online (Sandbox Code Playgroud)

如果私有注册表中不存在该命令,请尝试从dockerhub中拉取,将存储推送到私有注册表部分。工作正常。

但是我该怎么做:

docker pull busybox
Run Code Online (Sandbox Code Playgroud)

转到该注册表,而不必先添加dockerproxy:5002前缀?

环境变量?,$ HOME / .docker / config.json?广告标记?

谢谢

Elt*_*man 5

不,注册表地址是映像完整标记的一部分。如果您未指定地址,则将使用Docker Hub,并且不能将其更改为其他默认值。

没有办法解决(除了构建自己的Docker Engine之外)-这是一个故意的设计决策:

这将导致docker pull ubuntu对于两个不同的人/安装可能意味着两个不同的情况,这对用户来说非常不利。这将导致生态系统的碎片化并破坏社区。

  • 任何类型的代理都非常烦人。 (2认同)

Ale*_*sei 5

Docker 支持 docker.io hub 的镜像https://docs.docker.com/registry/recipes/mirror/:

编辑/etc/docker/daemon.json并添加注册表镜像键和值,以使更改持久。

{ "registry-mirrors": ["https://dockerproxy:5002"] }

保存文件并重新加载 Docker 以使更改生效。

现在docker pull busybox从您的 Nexus 代理。