1、编写集群docker-compose配置文件
[root@sgpexchangeintermediate-192-168-8-62 zookeeper]# cat docker-compose.yml
version: '3.4'
services:
zoo1:
image: zookeeper
restart: always
hostname: zoo1
container_name: zoo1
ports:
- 2184:2181
volumes:
- "/data/deploy/zookeeper/zoo1/data:/data"
- "/data/deploy/zookeeper/zoo1/datalog:/datalog"
environment:
ZOO_MY_ID: 1
ZOO_SERVERS: server.1=0.0.0.0:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888
networks:
br17219:
ipv4_address: 172.19.0.11
zoo2:
image: zookeeper
restart: always
hostname: zoo2
container_name: zoo2
ports:
- 2185:2181
volumes:
- "/data/deploy/zookeeper/zoo2/data:/data"
- "/data/deploy/zookeeper/zoo2/datalog:/datalog"
environment:
ZOO_MY_ID: 2
ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=0.0.0.0:2888:3888 server.3=zoo3:2888:3888
networks:
br17219:
ipv4_address: 172.19.0.12
zoo3:
image: zookeeper
restart: always
hostname: zoo3
container_name: zoo3
ports:
- 2186:2181
volumes:
- "/data/deploy/zookeeper/zoo3/data:/data"
- "/data/deploy/zookeeper/zoo3/datalog:/datalog"
environment:
ZOO_MY_ID: 3
ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=0.0.0.0:2888:3888
networks:
br17219:
ipv4_address: 172.19.0.13
networks:
br17219:
external:
name: br17219
[root@sgpexchangeintermediate-192-168-8-62 kafka]# cat docker-compose.yml
version: '2'
services:
kafka1:
image: wurstmeister/kafka
restart: always
hostname: kafka1
container_name: kafka1
ports:
- 9092:9092
environment:
KAFKA_ADVERTISED_HOST_NAME: kafka1
KAFKA_ADVERTISED_PORT: 9092
KAFKA_ZOOKEEPER_CONNECT: zoo1:2181,zoo2:2181,zoo3:2181
volumes:
- /data/deploy/kafka/kafka1/logs:/kafka
external_links:
- zoo1
- zoo2
- zoo3
networks:
br17219:
ipv4_address: 172.19.0.14
kafka2:
image: wurstmeister/kafka
restart: always
hostname: kafka2
container_name: kafka2
ports:
- 9093:9093
environment:
KAFKA_ADVERTISED_HOST_NAME: kafka2
KAFKA_ADVERTISED_PORT: 9093
KAFKA_ZOOKEEPER_CONNECT: zoo1:2181,zoo2:2181,zoo3:2181
volumes:
- /data/deploy/kafka/kafka2/logs:/kafka
external_links:
- zoo1
- zoo2
- zoo3
networks:
br17219:
ipv4_address: 172.19.0.15
kafka3:
image: wurstmeister/kafka
restart: always
hostname: kafka3
container_name: kafka3
ports:
- 9094:9094
environment:
KAFKA_ADVERTISED_HOST_NAME: kafka3
KAFKA_ADVERTISED_PORT: 9094
KAFKA_ZOOKEEPER_CONNECT: zoo1:2181,zoo2:2181,zoo3:2181
volumes:
- /data/deploy/kafka/kafka3/logs:/kafka
external_links:
- zoo1
- zoo2
- zoo3
networks:
br17219:
ipv4_address: 172.19.0.16
networks:
br17219:
external:
name: br17219
2、创建集群网络
[root@sgpexchangeintermediate-192-168-8-62 zookeeper]# docker network create --subnet=172.19.0.0/24 br17219
228522f5f69d6b0e7938d9cf7d2cad3ce97b195d23fab58ce0946dd43924bf21
3、分别启动zookeeper和kafka集群
[root@sgpexchangeintermediate-192-168-8-62 zookeeper]# docker-compose up -d
Creating zoo1 ... done
Creating zoo3 ... done
Creating zoo2 ... done
[root@sgpexchangeintermediate-192-168-8-62 zookeeper]# cd ../kafka/
[root@sgpexchangeintermediate-192-168-8-62 kafka]# docker-compose up -d
Creating kafka1 ... done
Creating kafka2 ... done
Creating kafka3 ... done
4、查看集群镜像
[root@sgpexchangeintermediate-192-168-8-62 kafka]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
86c25b647a72 wurstmeister/kafka "start-kafka.sh" 9 seconds ago Up 8 seconds 0.0.0.0:9094->9094/tcp, :::9094->9094/tcp kafka3
7554d88664e7 wurstmeister/kafka "start-kafka.sh" 9 seconds ago Up 8 seconds 0.0.0.0:9093->9093/tcp, :::9093->9093/tcp kafka2
2527c4a78add wurstmeister/kafka "start-kafka.sh" 9 seconds ago Up 8 seconds 0.0.0.0:9092->9092/tcp, :::9092->9092/tcp kafka1
198c5a7a9102 zookeeper "/docker-entrypoint.…" 17 seconds ago Up 16 seconds 2888/tcp, 3888/tcp, 8080/tcp, 0.0.0.0:2185->2181/tcp, :::2185->2181/tcp zoo2
b1586934130c zookeeper "/docker-entrypoint.…" 17 seconds ago Up 16 seconds 2888/tcp, 3888/tcp, 8080/tcp, 0.0.0.0:2186->2181/tcp, :::2186->2181/tcp zoo3
69b24ec6c6f0 zookeeper "/docker-entrypoint.…" 17 seconds ago Up 16 seconds 2888/tcp, 3888/tcp, 8080/tcp, 0.0.0.0:2184->2181/tcp, :::2184->2181/tcp zoo1