如何访问 Docker 覆盖网络中使用的 Consul?
How to access Consul used in Docker overlay networks?
我已经设置了使用 Consul 的覆盖多主机网络,没有 Swarm。
我想根据自己的需要访问 Consul。当我 运行 我的 docker 基础设施在本地(在几台 docker 机器上)时,我无法通过以下方式访问它:
consul members --rpc-addr=192.168.99.100:8500
这没有 return 任何东西。端口 8500
是唯一公开的。我看到 8300
(和其他一些端口)也打开了,但没有暴露。
我应该暴露 8300 吗?为什么 Docker/VMs 使用 8500?
consul
使用了不同的端口。
8500
用于与其他consul agent通信
8400
用于执行RPC,consul代理绑定到选项-bind
指定的ip地址(默认为本地)。
因此命令:
consul agent -data-dir /tmp/consul -node=$HOSTNAME -bind=$IP
这将启动一个名为 $HOSTNAME
并绑定到 IP 地址 $IP
的领事代理,可以通过 consul members -rpc-addr=$IP:8400
.[=20= 等命令向其发送命令]
您可能会发现 this answer 有用。它描述了 运行 使用 Consul 的 Swarm 多主机覆盖网络的分步教程。
编辑
正如@vince-bowdren, the documentation give in depth details on the various udp/tcp ports used by consul所指出的那样。
我已经设置了使用 Consul 的覆盖多主机网络,没有 Swarm。
我想根据自己的需要访问 Consul。当我 运行 我的 docker 基础设施在本地(在几台 docker 机器上)时,我无法通过以下方式访问它:
consul members --rpc-addr=192.168.99.100:8500
这没有 return 任何东西。端口 8500
是唯一公开的。我看到 8300
(和其他一些端口)也打开了,但没有暴露。
我应该暴露 8300 吗?为什么 Docker/VMs 使用 8500?
consul
使用了不同的端口。
8500
用于与其他consul agent通信8400
用于执行RPC,consul代理绑定到选项-bind
指定的ip地址(默认为本地)。
因此命令:
consul agent -data-dir /tmp/consul -node=$HOSTNAME -bind=$IP
这将启动一个名为 $HOSTNAME
并绑定到 IP 地址 $IP
的领事代理,可以通过 consul members -rpc-addr=$IP:8400
.[=20= 等命令向其发送命令]
您可能会发现 this answer 有用。它描述了 运行 使用 Consul 的 Swarm 多主机覆盖网络的分步教程。
编辑
正如@vince-bowdren, the documentation give in depth details on the various udp/tcp ports used by consul所指出的那样。