前提
docker network create hadoop-network
1. 创建 zookeeper 容器
docker run -d --restart=always \
--network hadoop-network \
--network-alias zookeeper \
--name zookeeper \
-p 2181:2181 \
-v /data/zookeeper/data:/data \
-v /data/zookeeper/datalog:/datalog \
-v /data/zookeeper/logs:/logs \
-v /etc/localtime:/etc/localtime \
zookeeper:3.7.0
2. 创建3个kafka 容器
docker run -d --restart=always \
--network hadoop-network \
--network-alias kafka \
--name kafka \
-p 9092:9092 \
-e KAFKA_BROKER_ID=0 \
-e KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://kafka:9092 \
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 \
-e KAFKA_LOG_DIRS=/kafka/kafka-logs \
-v /data/kafka/logs:/opt/kafka/logs \
-v /data/kafka/kafka-logs:/kafka/kafka-logs \
-v /etc/localtime:/etc/localtime:ro \
wurstmeister/kafka:2.12-2.3.1
docker run -d --restart=always \
--network hadoop-network \
--network-alias kafka-1 \
--name kafka-1 \
-p 9091:9092 \
-e KAFKA_BROKER_ID=1 \
-e KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://kafka-1:9092 \
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 \
-e KAFKA_LOG_DIRS=/kafka/kafka-logs \
-v /data/kafka-1/logs:/opt/kafka/logs \
-v /data/kafka-1/kafka-logs:/kafka/kafka-logs \
-v /etc/localtime:/etc/localtime:ro \
wurstmeister/kafka:2.12-2.3.1
docker run -d --restart=always \
--network hadoop-network \
--network-alias kafka-2 \
--name kafka-2 \
-p 9093:9092 \
-e KAFKA_BROKER_ID=2 \
-e KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://kafka-2:9092 \
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 \
-e KAFKA_LOG_DIRS=/kafka/kafka-logs \
-v /data/kafka-2/logs:/opt/kafka/logs \
-v /data/kafka-2/kafka-logs:/kafka/kafka-logs \
-v /etc/localtime:/etc/localtime:ro \
wurstmeister/kafka:2.12-2.3.1
生成的3个容器:
3. 进入kafka 容器, 利用生产者客户端创建 topic: test_topic, 输入消息进行测试
docker exec -it kafka bash
cd /opt/kafka/bin
./kafka-console-producer.sh --broker-list localhost:9092 --topic test_topic
>test msg
4. 新开会话,进入kafka 容器,打开消费者客户端
docker exec -it kafka bash
cd /opt/kafka/bin
./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test_topic --from-beginning
5. 验证 zookeeper 和 kafka 集群都在一个网络 hadoop-network 内:
docker network inspect {network-name}
docker network inspect hadoop-network
注意点:
- 192.168.88.151 是宿主机IP