如何启动在 docker 容器中运行的 consul 客户端



更新:我忽略了dockerhub上的progrium/consul页面,该页面解决了我的问题。

问题:

所以我在程序/领事容器中运行领事。 我正在运行 3 台连接在一起的服务器,并希望添加一些领事客户端。 但是,我找不到任何详细说明如何使用 progrium/consul 容器启动领事客户端的指南。 这是我目前尝试启动客户端的尝试:

请注意,$CLIENT_IP_ADDR 是我的客户端 IP 地址,$CONSUL_SERVER0、$CONSUL_SERVER1 和 $CONSUL_SERVER2 是我的领事服务器的 IP 地址。

docker run -d -h client0 --name client0 -v /mnt:/data 
-p $CLIENT_IP_ADDR:8300:8300 
-p $CLIENT_IP_ADDR:8301:8301 
-p $CLIENT_IP_ADDR:8301:8301/udp 
-p $CLIENT_IP_ADDR:8302:8302 
-p $CLIENT_IP_ADDR:8302:8302/udp 
-p $CLIENT_IP_ADDR:8400:8400 
-p $CLIENT_IP_ADDR:8500:8500 
-p 172.17.0.1:53:53/udp 
progrium/consul -client -advertise $CLIENT_IP_ADDR 
-join $CONSUL_SERVER0 -join $CONSUL_SERVER1 -join $CONSUL_SERVER2

以下是我在检查容器日志时收到的错误消息:

myUserName@myHostName:~$ docker logs client0
==> WARNING: It is highly recommended to set GOMAXPROCS higher than 1
==> Starting Consul agent...
==> Error starting RPC listener: listen tcp $CLIENT_IP_ADDR:8400: bind: cannot assign requested address

我认为答案只是从我的容器中删除-client标签:

docker run -d -h client0 --name client0 -v /mnt:/data 
-p $CLIENT_IP_ADDR:8300:8300 
-p $CLIENT_IP_ADDR:8301:8301 
-p $CLIENT_IP_ADDR:8301:8301/udp 
-p $CLIENT_IP_ADDR:8302:8302 
-p $CLIENT_IP_ADDR:8302:8302/udp 
-p $CLIENT_IP_ADDR:8400:8400 
-p $CLIENT_IP_ADDR:8500:8500 
-p 172.17.0.1:53:53/udp 
progrium/consul -advertise $CLIENT_IP_ADDR 
-join $CONSUL_SERVER0 -join $CONSUL_SERVER1 -join $CONSUL_SERVER2

显然,这是此容器 https://hub.docker.com/r/progrium/consul/的默认模式。我认为它在客户端模式下运行,因为我的client0节点没有出现在领事服务下。 只有我的 3 个领事服务器出现在那里。

相关内容

最新更新