如何访问Docker覆盖networking中使用的Consul?

我确实设置了使用Consul的叠加多主机networking,没有Swarm。

我想根据自己的需要去接见领事。 当我在本地(在多个docker机上)运行我的docker工程师基础设施时,我无法使用以下方法:

consul members --rpc-addr=192.168.99.100:8500 

这不会返回任何东西。 端口8500是唯一暴露的。 我看到8300 (和其他一些端口)也是开放的,但没有暴露。

我应该公开8300? 为什么Docker /虚拟机使用8500?

有不同的consul使用的端口。

  • 8500用于与其他领事代理进行沟通。
  • 8400用于执行RPC,将consul代理绑定到使用选项-bind (默认为本地)指定的IP地址。

因此命令:

 consul agent -data-dir /tmp/consul -node=$HOSTNAME -bind=$IP 

这将启动一个名为$HOSTNAME的consul代理并绑定到IP地址$IP ,命令可以通过诸如consul members -rpc-addr=$IP:8400类的命令发送到该consul members -rpc-addr=$IP:8400


你可能会觉得这个答案有用。 它描述了一个循序渐进的教程,使用Consul使用Swarm运行多宿主覆盖networking。


编辑

正如@ vince-bowdren指出的那样 ,文档详细介绍了领事使用的各种udp / tcp端口 。