如何从用户定义的网桥网络上的另一个容器访问本地docker注册表

如何从用户定义的网桥网络上的另一个容器访问本地docker注册表,docker,registry,Docker,Registry,我正在尝试设置一个测试环境,以便在代理上执行jenkins docker构建,并将生成的映像推送到本地注册表。我想使用本地注册表来提高速度 我正在Windows 10上运行docker desktop,带有WSL2后端 Jenkins在一个容器中运行,build agent在另一个容器中运行,两者都使用一个命名的网桥网络,因此通过名称相互解析。构建部分正在运行,我可以构建我的映像并从构建代理推送到docker hub 如果我在容器中运行docker注册表,如文档中所述 我可以从docker主机向

我正在尝试设置一个测试环境,以便在代理上执行jenkins docker构建,并将生成的映像推送到本地注册表。我想使用本地注册表来提高速度

我正在Windows 10上运行docker desktop,带有WSL2后端

Jenkins在一个容器中运行,build agent在另一个容器中运行,两者都使用一个命名的网桥网络,因此通过名称相互解析。构建部分正在运行,我可以构建我的映像并从构建代理推送到docker hub

如果我在容器中运行docker注册表,如文档中所述

我可以从docker主机向本地注册表推/拉

当我使用与Jenkins和构建代理相同的网络运行注册表容器时,我不会将端口发布到主机

docker run -d --restart=always --name registry --network jenkins registry:2.7
此时,我希望能够从构建代理使用注册表。当我尝试推送图像时,会出现错误

当我使用

docker push registry:5000/myimage
反应很慢,看起来像这样

The push refers to repository [registry:5000/connector]
Get https://registry:5000/v2/: dial tcp: lookup registry on 192.168.65.5:53: read udp 192.168.65.4:47451->192.168.65.5:53: i/o timeout
但是如果我看到这个

PING registry (172.18.0.6) 56(84) bytes of data.
64 bytes from registry.jenkins (172.18.0.6): icmp_seq=1 ttl=64 time=0.097 ms
我不明白为什么报告的地址不同,我也不认识192.168.65网络

如果我在没有网络的情况下运行注册表(使用默认网桥),并尝试从默认网桥上的另一个容器连接到注册表,也会发生同样的情况,不过在这种情况下,我必须使用IP地址,因为名称无法解析

我被难住了,我希望在命名网络上的容器中运行注册表,并从我的构建代理获得对它的访问权限,这样我就可以在本地推送映像并节省时间,因为它比推送到docker hub要快得多

有人能帮我做到这一点吗

谢谢

PING registry (172.18.0.6) 56(84) bytes of data.
64 bytes from registry.jenkins (172.18.0.6): icmp_seq=1 ttl=64 time=0.097 ms