首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >consul container退出时出现协议版本错误

consul container退出时出现协议版本错误
EN

Stack Overflow用户
提问于 2017-07-11 20:51:45
回答 2查看 284关注 0票数 4

我正在尝试为consul创建一个容器,但输出总是失败,有趣的是,我真的不认为这是一个错误

代码语言:javascript
复制
Protocol 2 spoken by default, understands 2 to 3 (agent will automatically use protocol >2 when speaking to compatible agents)

以下是我正在使用的命令:

代码语言:javascript
复制
docker container run --net host --name consul-server -e 'CONSUL_LOCAL_CONFIG={"skip_leave_on_interrupt": true}' -e CONSUL_BIND_INTERFACE='eth0' consul agent -server -client 0.0.0.0 -dns-port 53 -bootstrap-expect 1 -ui -datacenter dc1 -v "/var/lib/consul:/consul/data" -data-dir /var/lib/consul

它是单节点全新安装,具有注册表中的最新版本,因此这里不会发生任何代理/客户端的升级或版本不匹配问题。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-11 21:26:16

有两件事需要解决。首先,-v卷参数必须用于docker命令,而不是consul命令。将其移动到正确的位置:

代码语言:javascript
复制
docker container run -v "/consul/data:/var/lib/consul" -data-dir /var/lib/consul --net host --name consul-server -e 'CONSUL_LOCAL_CONFIG={"skip_leave_on_interrupt": true}' -e CONSUL_BIND_INTERFACE='eth0' consul agent -server -client 0.0.0.0 -dns-port 53 -bootstrap-expect 1 -ui -datacenter dc1 

还要颠倒它们(它们是/host/dir:/container/dir)

第二,默认情况下,领事不能监听特权端口(即53)。请看这个:https://www.consul.io/docs/guides/forwarding.html,所以删除-dns-port 53并实现他们推荐的任何方法:

代码语言:javascript
复制
docker container run -v "/consul/data:/var/lib/consul" -data-dir /var/lib/consul --net host --name consul-server -e 'CONSUL_LOCAL_CONFIG={"skip_leave_on_interrupt": true}' -e CONSUL_BIND_INTERFACE='eth0' consul agent -server -client 0.0.0.0 -bootstrap-expect 1 -ui -datacenter dc1 

我推荐DNSMasq setup,它很容易实现。

票数 1
EN

Stack Overflow用户

发布于 2017-07-12 13:43:38

@Robert Alright,我想我们也有点离题了。真正的问题是它显示的消息,并在那之后立即退出。

我尝试了你的例子,它给出了相同的消息/错误(但不要认为这是一个错误)

代码语言:javascript
复制
[root@ip-X-X-X-X user]# docker container run --net host --name consul-server -e 'CONSUL_LOCAL_CONFIG={"skip_leave_on_interrupt": true}' -e CONSUL_BIND_INTERFACE='eth0' consul agent -server -client 0.0.0.0 -dns-port 53 -bootstrap-expect 1 -ui -datacenter dc1 -v "/var/lib/consul:/consul/data" -data-dir /var/lib/consul
==> Found address 'X.X.X.X' for interface 'eth0', setting bind option...
Consul v0.8.5
Protocol 2 spoken by default, understands 2 to 3 (agent will automatically use protocol >2 when speaking to compatible agents)
[root@ip-X-X-X-X user]# docker container ls | grep consul-server
[root@ip-10-201-14-34 user]#

递归函数示例也是如此:

代码语言:javascript
复制
[root@ip-X.X.X.X user]# docker container run --net host --name consul-server -e 'CONSUL_LOCAL_CONFIG={"skip_leave_on_interrupt": true}' -e CONSUL_BIND_INTERFACE='eth0' consul agent -server -client 0.0.0.0 -dns-port 53 -bootstrap-expect 1 -ui -datacenter dc1 -v "/var/lib/consul:/consul/data" -data-dir /var/lib/consul -recursers 8.8.8.8
==> Found address 'X.X.X.X' for interface 'eth0', setting bind option...
Consul v0.8.5
Protocol 2 spoken by default, understands 2 to 3 (agent will automatically use protocol >2 when speaking to compatible agents)
[root@ip-X-X-X-X user]# docker container ls | grep consul-server
[root@ip-10-201-14-34 user]#
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45035169

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档