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

时间:2016-06-08 19:06:28

标签: docker client-server consul

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

问题:

所以我在progrium / consul容器中运行consul。我正在运行连接在一起的3台服务器,并希望添加一些领事客户端。但是,我无法找到任何详细说明如何使用progrium / consul容器启动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

1 个答案:

答案 0 :(得分:0)

我认为答案只是从我的容器中删除-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节点没有出现在consul服务下。只有我的3个领事服务器出现在那里。