public zookeeper 主机在哪里?
Where to public zookeeper hosts?
我有如下场景:
如您所见,我安装了两个 docker 主机,Dockerhost1 和 Dockerhost2。在两台主机中,2 Zookeeper 容器都是 运行ning。
我想要,所有的Zookeeper容器都互相认识,因为我要搭建一个集群环境。
以下网络可用:
Dockerizer@docker1:~$ docker network ls
NETWORK ID NAME DRIVER SCOPE
dbf91cc26912 bridge bridge local
57f38c4c93ad host host local
5d54f5ce807e none null local
我的问题是:
我必须在哪个网络中 运行 Zookeeper
容器?我猜是在 host
网络上吗?
为了 运行 主机上的两个容器,我将创建一个组合文件,其中包含:
version: '3.1'
services:
zoo1:
image: zookeeper
restart: always
hostname: zoo1
ports:
- 2181:2181
environment:
ZOO_MY_ID: 1
ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888
zoo2:
image: zookeeper
restart: always
hostname: zoo2
ports:
- 2182:2181
environment:
ZOO_MY_ID: 2
ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888
如何配置网络,让他们互相认识?
建议安装docker swarm,做成集群?
我可能会实现群模式,不是为了群调度和管理容器作为扩展服务,而是为了包含覆盖网络。您可以设置自己的 k/v 存储并将其用于覆盖网络,但在主机 1 上更容易 运行:
docker swarm init
然后 运行 在主机 2 上输出 join
命令。
然后您可以创建一个可连接且跨越两个主机的覆盖网络:
docker network create -d overlay --attachable zookeeper
Attachable 还允许您在 swarm 服务之外使用网络。您只需将其作为外部网络添加到您的撰写文件中:
version: '3.1'
networks:
zookeeper:
external: true
services:
zoo1:
image: zookeeper
restart: always
hostname: zoo1
networks:
- zookeeper
ports:
- 2181:2181
environment:
ZOO_MY_ID: 1
ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888
zoo2:
image: zookeeper
restart: always
hostname: zoo2
networks:
- zookeeper
ports:
- 2182:2181
environment:
ZOO_MY_ID: 2
ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888
我有如下场景:
如您所见,我安装了两个 docker 主机,Dockerhost1 和 Dockerhost2。在两台主机中,2 Zookeeper 容器都是 运行ning。
我想要,所有的Zookeeper容器都互相认识,因为我要搭建一个集群环境。
以下网络可用:
Dockerizer@docker1:~$ docker network ls
NETWORK ID NAME DRIVER SCOPE
dbf91cc26912 bridge bridge local
57f38c4c93ad host host local
5d54f5ce807e none null local
我的问题是:
我必须在哪个网络中 运行 Zookeeper
容器?我猜是在 host
网络上吗?
为了 运行 主机上的两个容器,我将创建一个组合文件,其中包含:
version: '3.1'
services:
zoo1:
image: zookeeper
restart: always
hostname: zoo1
ports:
- 2181:2181
environment:
ZOO_MY_ID: 1
ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888
zoo2:
image: zookeeper
restart: always
hostname: zoo2
ports:
- 2182:2181
environment:
ZOO_MY_ID: 2
ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888
如何配置网络,让他们互相认识?
建议安装docker swarm,做成集群?
我可能会实现群模式,不是为了群调度和管理容器作为扩展服务,而是为了包含覆盖网络。您可以设置自己的 k/v 存储并将其用于覆盖网络,但在主机 1 上更容易 运行:
docker swarm init
然后 运行 在主机 2 上输出 join
命令。
然后您可以创建一个可连接且跨越两个主机的覆盖网络:
docker network create -d overlay --attachable zookeeper
Attachable 还允许您在 swarm 服务之外使用网络。您只需将其作为外部网络添加到您的撰写文件中:
version: '3.1'
networks:
zookeeper:
external: true
services:
zoo1:
image: zookeeper
restart: always
hostname: zoo1
networks:
- zookeeper
ports:
- 2181:2181
environment:
ZOO_MY_ID: 1
ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888
zoo2:
image: zookeeper
restart: always
hostname: zoo2
networks:
- zookeeper
ports:
- 2182:2181
environment:
ZOO_MY_ID: 2
ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888