如何访问 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所指出的那样。