Api 领事找不到群集领导

Api 领事找不到群集领导,api,docker,consul,kong,Api,Docker,Consul,Kong,我用了这个: 通过Docker compose在Docker上本地运行。运行docker compose up后,我的日志中不断出现此错误: consul_1 | 2017/05/29 08:44:05 [INFO] raft: Node at 172.17.0.4:8300 [Candidate] entering Candidate state consul_1 | 2017/05/29 08:44:05 [ERR] raft: Failed to make RequestVote RPC

我用了这个:

通过Docker compose在Docker上本地运行。运行
docker compose up
后,我的日志中不断出现此错误:

consul_1 | 2017/05/29 08:44:05 [INFO] raft: Node at 172.17.0.4:8300 [Candidate] entering Candidate state
consul_1 | 2017/05/29 08:44:05 [ERR] raft: Failed to make RequestVote RPC to 172.17.0.3:8300: dial tcp 172.17.0.3:8300: connection refused
consul_1 | 2017/05/29 08:44:05 [ERR] raft: Failed to make RequestVote RPC to 172.17.0.2:8300: dial tcp 172.17.0.2:8300: connection refused
consul_1 | 2017/05/29 08:44:06 [ERR] agent: failed to sync changes: No cluster leader
consul_1 | 2017/05/29 08:44:06 [ERR] agent: failed to sync changes: No cluster leader
consul_1 | 2017/05/29 08:44:06 [ERR] agent: failed to sync changes: No cluster leader

我在谷歌上搜索了一下,但没有找到任何具体的答案。

发生这种情况是因为Consour'hardcode'最初分配的本地IP(172.17…),然后当你再次运行docker compose时,它会占用一个新的IP,所以会混淆我们的朋友
Consour

因此,作为简单的解决方法,您可以
docker-compose rm-consul
,然后重新开始
docker-compose-up
。但请记住,您可能会丢失Consor的数据(即密钥/值存储,但我不知道您的应用程序是否正在使用它)

作为一个更好的解决方法(这对我很有用),添加
-client=0.0.0.0
告诉consur硬编码更好的东西

在docker-compose.yml中:

consul:
  image: progrium/consul:latest
  command: -server -bootstrap -ui-dir /ui -client=0.0.0.0