公共动物园管理员在哪里举办?

时间:2017-10-29 14:39:20

标签: docker docker-compose apache-zookeeper

我有以下情况,如下所示:

enter image description here

如您所见,我安装了两个docker主机, Dockerhost1 Dockerhost2 。在两台主机内部, 2 Zookeeper 容器正在运行。

我想,所有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,使其成为群集?

1 个答案:

答案 0 :(得分:1)

我可能实现swarm模式,不是为了群集调度和管理容器作为缩放服务,而是用于包含的覆盖网络。您可以设置自己的k / v商店并将其用于覆盖网络,但主机1运行起来要容易得多:

docker swarm init

然后在主机2上运行输出join命令。

然后,您可以创建一个可附加并覆盖两个主机的覆盖网络:

docker network create -d overlay --attachable zookeeper

Attachable还允许您在群组服务之外使用网络。您只需将其添加为撰写文件中的外部网络:

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