gpt4 book ai didi

docker - 领事容器退出并出现协议(protocol)版本错误

转载 作者:行者123 更新时间:2023-12-01 04:47:56 25 4
gpt4 key购买 nike

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

Protocol 2 spoken by default, understands 2 to 3 (agent will automatically use protocol >2 when speaking to compatible agents)

以下是我正在使用的命令:
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

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

最佳答案

有两件事要解决。一、-v音量参数必须为 docker命令,不适用于 consul命令。将其移动到正确的位置:

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)

其次,默认情况下,Consul 不能监听特权端口(即 53)。见: https://www.consul.io/docs/guides/forwarding.html , 所以删除 -dns-port 53并实现他们推荐的任何方法:
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 ,很容易实现。

关于docker - 领事容器退出并出现协议(protocol)版本错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45035169/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com