Prefacio
El módulo de red presentado antes docker-compose
.
Dependencias básicas
- ventana acoplable y ventana acoplable-componer
la idea basica
Idea 1
En primer lugar, debemos ir al sitio web oficial de Docker para ver si hay una imagen oficial. Muy por suerte, nuestro cuidador del zoológico ya tiene una imagen oficial que puede usarse.
Antes de usar la imagen del guardián del zoológico, será mejor que confirmemos la versión que necesita. Este artículo utiliza el entorno actual que es relativamente estable 3.6.3
. (Tenga en cuenta que Mac parece haberse adaptado recientemente al chip M1, así que elija la imagen acoplable adaptada correspondiente .)
-
Descargue la imagen de la ventana acoplable con anticipación
docker pull zookeeper:3.6.3
-
Cree una red acoplable por adelantado
docker-network create zk-net
Independiente: (archivo docker-compose.yml)
version: '2'
networks:
zk-net:
name: zk-net
services:
zoo1:
image: 'zookeeper:3.6.3'
container_name: zoo1
hostname: zoo1
environment:
ZOO_MY_ID: 1
ZOO_SERVERS: server.1=0.0.0.0:2888:3888;2181
ALLOW_ANONYMOUS_LOGIN: "yes"
networks:
- zk-net
ports:
- 2181:2181
- 8081:8080
El archivo de configuración del clúster es similar al de una sola máquina. Primero analicemos el archivo de configuración de una sola máquina.
redes
networks/zk-net/name
: Esto es principalmente para declarar la red relacionada de Docker, que es conveniente para usar a continuación.
servicios
services/environnet
: Declara principalmente ciertas variables que deben usarse más adelante.environment/ZOO_MY_ID
: Por lo general, se declara la identificación del nodo al crear un clúster.environment/ ZOO_SERVERS: server.1
: Declara la dirección del archivo de configuración.environment/networks
: La red utilizada por el nodo actual.environment/ports
: Mapeo de nodos relacionados con el nodo actual.
Clúster: (archivo docker-compose.yml)
version: '2'
networks:
zk-net:
name: zk-net
services:
zoo1:
image: 'zookeeper:3.6.3'
container_name: zoo1
hostname: zoo1
environment:
ZOO_MY_ID: 1
ZOO_SERVERS: server.1=0.0.0.0:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181
ALLOW_ANONYMOUS_LOGIN: "yes"
networks:
- zk-net
ports:
- 2181:2181
- 8081:8080
zoo2:
image: 'zookeeper:3.6.3'
container_name: zoo2
hostname: zoo2
environment:
ZOO_MY_ID: 2
ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=0.0.0.0:2888:3888;2181 server.3=zoo3:2888:3888;2181
ALLOW_ANONYMOUS_LOGIN: "yes"
networks:
- zk-net
ports:
- 2182:2181
- 8082:8080
zoo3:
image: 'zookeeper:3.6.3'
container_name: zoo3
hostname: zoo3
environment:
ZOO_MY_ID: 3
ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=0.0.0.0:2888:3888;2181
ALLOW_ANONYMOUS_LOGIN: "yes"
networks:
- zk-net
ports:
- 2183:2181
- 8083:8080
De hecho, el sitio web oficial del archivo de configuración correspondiente Zookeeper
ya ha proporcionado una solución, que es relativamente similar al archivo de configuración anterior.
Operaciones prácticas relacionadas
- puesta en marcha
docker-compose start
- Utilice
zk-Cli.sh
grupos de cuidadores del zoológico vinculados.
Referencia
[1]. Construya un clúster de Zookeeper con Docker Compose
[2]. https://hub.docker.com/_/zookeeper
[3]. Utilice Docker para construir un clúster de ZooKeeper en un solo paso.