Docker:按ip地址参考注册表

Docker:按ip地址参考注册表,docker,docker-registry,Docker,Docker Registry,我有一个Docker映像要推送到我的注册表(托管在localhost)。我有: 而且工作正常。但是,如果我标记图像并将其推送: docker push 172.20.20.20:5000/my_image 我犯了一个错误 推送指的是存储库[172.20.20.20:5000/my_tomcat](len:1) 无法ping注册表终结点https://172.20.20.20:5000/v0/ v2 ping尝试失败,错误为: 得到https://172.20.20.20:5000/v2/: 网

我有一个Docker映像要推送到我的注册表(托管在
localhost
)。我有:

而且工作正常。但是,如果我标记图像并将其推送:

docker push 172.20.20.20:5000/my_image
我犯了一个错误

推送指的是存储库[172.20.20.20:5000/my_tomcat](len:1)

无法ping注册表终结点https://172.20.20.20:5000/v0/ v2

ping尝试失败,错误为:
得到https://172.20.20.20:5000/v2/: 网关超时

我不能通过IP访问注册表吗?如果是这样,我如何从另一个主机推送一个不是
localhost
的映像

编辑

我以这种方式运行注册表:

docker run -d -p 5000:5000 --restart=always --name registry registry:2
如“”(by)中所述,您应该能够使用docker 1.10以固定IP地址运行注册表

它使用


您可以根据注册表docker运行参数调整此示例。

首先,请检查您是否能够连接端口5000上的注册表。在Linux/windows中,您可以使用telnet完成此操作。下面是命令

$telnet 172.20.20.20 5000

如果连接检查失败,请检查防火墙设置

我不确定您是否正在使用登录功能运行注册表。但是从这个问题上,我可以假设你没有使用它。在这种情况下,请将您的注册表作为不安全的注册表添加到docker守护进程中,您正试图从中访问注册表。此处描述了该过程-


如果成功,请告诉我。

对我来说,这表明该服务绑定到本地IP(127.0.0.1),因此不会在另一个IP上响应。您如何指定注册表侦听的IP?我已经编辑了这个问题。基本上,我对端口使用
-p
选项,但对IP不做任何操作。
docker run -d -p 5000:5000 --restart=always --name registry registry:2
# create a new bridge network with your subnet and gateway for your ip block
$ docker network create --subnet 203.0.113.0/24 --gateway 203.0.113.254 iptastic

# run a nginx container with a specific ip in that block
$ docker run --rm -it --net iptastic --ip 203.0.113.2 nginx

# curl the ip from any other place (assuming this is a public ip block duh)
$ curl 203.0.113.2