Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在docker swarm中运行注册表?_Docker_Docker Swarm - Fatal编程技术网

如何在docker swarm中运行注册表?

如何在docker swarm中运行注册表?,docker,docker-swarm,Docker,Docker Swarm,在具有2个节点的docker swarm模式下,如果我这样做: node1master# docker service create --name registry --publish 5000:5000 registry:2 然后,我无法通过执行以下操作访问注册表: node1master# telnet localhost 5000 Trying ::1... Trying 127.0.0.1... telnet: Unable to connect to remote host: Con

在具有2个节点的docker swarm模式下,如果我这样做:

node1master# docker service create --name registry --publish 5000:5000 registry:2
然后,我无法通过执行以下操作访问注册表:

node1master# telnet localhost 5000
Trying ::1...
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection refused
因为注册表现在正在node2worker上运行:

node2worker# telnet localhost 5000
Trying ::1...
Connected to localhost.
Escape character is '^]'.
(当然可以在
node1master
上进行调度,但在本例中并非如此)

我不明白的是为什么注册表没有连接到
ingres
网络

我认为有意义的是,只要docker本身通过ingress网络路由对
localhost:5000
的请求,就可以将注册表连接到
ingress
网络


注册表应该如何运行,以便在所有节点上都可以使用
localhost:5000
(我猜是使用入口网络),或者作为docker守护进程的某个固定DNS名称使用。

Hm,我想上次我试过了,这是可行的,但我应该检查一下(现在不是在计算机上)。让我添加一个大警告,这个技巧在测试设置中很好,但是运行它会使注册表在Swarm中的每个节点上都可以公开访问,而无需访问控制,因此任何人都可以访问您的图像,并推送/覆盖您的图像(默认情况下,注册表图像没有访问控制)@thaJeztah所以我的问题可能也与我的另一个问题有关:,但是考虑到安全问题,docker本身是否会看到一个网络,但这不是注册中心可以驻留的可公开访问的接收网络?嗯,我想上次我试过了,这是可行的,但我应该检查一下(现在不是在计算机上)。让我添加一个大警告,这个技巧在测试设置中很好,但是运行它会使注册表在Swarm中的每个节点上都可以公开访问,而无需访问控制,因此任何人都可以访问您的图像,并推送/覆盖您的图像(默认情况下,注册表图像没有访问控制)@thaJeztah所以我的问题可能也与我的另一个问题有关:,但是考虑到安全问题,docker本身是否会看到一个网络,但这不是注册中心可以驻留的可公开访问的接收网络?