Docker的Zookeeper群集模式出错?
我正在尝试在不同的主机上使用docker部署zookeeper集群。我使用下一个docker compose,其中我在host1中运行zoo1,在host2中运行zoo2,在host3中运行zoo3Docker的Zookeeper群集模式出错?,docker,docker-compose,apache-zookeeper,Docker,Docker Compose,Apache Zookeeper,我正在尝试在不同的主机上使用docker部署zookeeper集群。我使用下一个docker compose,其中我在host1中运行zoo1,在host2中运行zoo2,在host3中运行zoo3 version: '2' services: zoo1: image: 31z4/zookeeper restart: always ports: - 2181:2181 - 2888:2888
version: '2'
services:
zoo1:
image: 31z4/zookeeper
restart: always
ports:
- 2181:2181
- 2888:2888
- 3888:3888
environment:
ZOO_MY_ID: 1
ZOO_SERVERS: server.1=host1-IP:2888:3888 server.2=host2-IP:2888:3888 server.3=host3-IP:2888:3888
zoo2:
image: 31z4/zookeeper
restart: always
ports:
- 2182:2181
- 2888:2888
- 3888:3888
environment:
ZOO_MY_ID: 2
ZOO_SERVERS: server.1=host1-IP:2888:3888 server.2=host2-IP:2888:3888 server.3=host3-IP:2888:3888
zoo3:
image: 31z4/zookeeper
restart: always
ports:
- 2183:2181
- 2888:2888
- 3888:3888
environment:
ZOO_MY_ID: 3
ZOO_SERVERS: server.1=host1-IP:2888:3888 server.2=host2-IP:2888:3888 server.3=host3-IP:2888:3888
代码是从以下位置添加的:
我只是尝试使用下一个docker compose,并将zoo1、zoo2和zoo3添加到/etc/hosts文件中:
version: '2'
services:
zoo1:
image: 31z4/zookeeper
restart: always
ports:
- 2181:2181
- 2888:2888
- 3888:3888
environment:
ZOO_MY_ID: 1
ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888
zoo2:
image: 31z4/zookeeper
restart: always
ports:
- 2182:2181
- 2888:2888
- 3888:3888
environment:
ZOO_MY_ID: 2
ZOO_SERVERS: server.1=zooo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888
zoo3:
image: 31z4/zookeeper
restart: always
ports:
- 2183:2181
- 2888:2888
- 3888:3888
environment:
ZOO_MY_ID: 3
ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888
但如果我检查状态,它不工作:
./bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /conf/zoo.cfg
Error contacting service. It is probably not running.
暴露端口的左侧是主机的本地端口,只能使用一次。此外,您不需要为容器互连公开端口,因为它们位于同一网络中 因此,移除左侧部分
2888:2888
,保持原样:2888
,然后docker将在主机中找到一个空闲端口(使用docker ps
查找它)。如果不需要公开端口,也可以直接删除端口
指令
version: '2'
services:
zoo1:
image: 31z4/zookeeper
restart: always
ports:
- 2181
- 2888
- 3888
environment:
ZOO_MY_ID: 1
ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888
zoo2:
image: 31z4/zookeeper
restart: always
ports:
- 2181
- 2888
- 3888
environment:
ZOO_MY_ID: 2
ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888
zoo3:
image: 31z4/zookeeper
restart: always
ports:
- 2181
- 2888
- 3888
environment:
ZOO_MY_ID: 3
ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888
问题是什么还不清楚。有关什么是好问题的详细信息,请参见和。@HoriaComan Thank刚刚编辑过真的谢谢,但我只是在不同的主机上使用了它,所以这些端口是免费的,最后在运行几分钟后就可以工作了。