Préface
Le module réseau présenté précédemment docker-compose
.
Dépendances de base
- docker et docker-compose
L'idée de base
Idée 1
Tout d'abord, il faut aller sur le site officiel de docker pour voir s'il existe une image officielle. Très chanceux, notre gardien de zoo a déjà une image officielle qui peut être utilisée.
Avant d'utiliser l'image zookeeper, nous ferions mieux de confirmer la version dont vous avez besoin. Cet article utilise l'environnement actuel qui est relativement stable 3.6.3
. (Notez que Mac semble avoir été récemment adapté à la puce M1, veuillez donc choisir l'image docker adaptée appropriée. .)
-
Téléchargez l'image Docker à l'avance
docker pull zookeeper:3.6.3
-
Créer un réseau Docker à l'avance
docker-network create zk-net
Autonome - (fichier 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
Le fichier de configuration du cluster est similaire à celui d'une seule machine. Analysons d'abord le fichier de configuration de la seule machine.
réseaux
networks/zk-net/name
: Il s'agit principalement de déclarer le réseau Docker associé.C'est pratique à utiliser ci-dessous.
prestations de service
services/environnet
: Déclare principalement certaines variables qui doivent être utilisées ultérieurement.environment/ZOO_MY_ID
: ID de nœud généralement déclaré lors de la construction d'un cluster.environment/ ZOO_SERVERS: server.1
: Déclarez l'adresse du fichier de configuration.environment/networks
: Le réseau utilisé par le nœud actuel.environment/ports
: Mappage de nœud lié au nœud actuel.
Cluster - (fichier 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
En fait, le site officiel du fichier de configuration concerné Zookeeper
a déjà proposé une solution, relativement similaire au fichier de configuration ci-dessus.
Opérations pratiques associées
- démarrer
docker-compose start
- Utilisez
zk-Cli.sh
des clusters zookeeper liés.
Référence
[1]. Créez un cluster ZooKeeper avec Docker Compose
[2]. https://hub.docker.com/_/zookeeper
[3]. Utilisez Docker pour créer un cluster ZooKeeper en une seule étape.