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

时间:2016-03-24 12:34:11

标签: docker consul

我确实设置了使用Consul的覆盖多主机网络,没有Swarm。

我想根据自己的需要访问Consul。当我在本地运行docker基础架构时(在几台docker机器上),我无法通过以下方式运行它:

consul members --rpc-addr=192.168.99.100:8500

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

我应该曝光8300吗? Docker / VM为何使用8500?

1 个答案:

答案 0 :(得分:2)

consul使用了不同的端口。

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

因此命令:

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

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

您可能会发现this answer有用。它描述了使用Consul使用Swarm运行多主机覆盖网络的分步教程。

修改

正如@vince-bowdren所指出的那样,文档提供了in depth details on the various udp/tcp ports used by consul