我确实设置了使用Consul的覆盖多主机网络,没有Swarm。
我想根据自己的需要访问Consul。当我在本地运行docker基础架构时(在几台docker机器上),我无法通过以下方式运行它:
consul members --rpc-addr=192.168.99.100:8500
这不会返回任何内容。端口8500
是唯一暴露的。我看到8300
(以及其他一些端口)也是开放的,但没有暴露。
我应该曝光8300吗? Docker / VM为何使用8500?
答案 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。