简介
使用 Docker 启动 zookeeper 与 kafka 容器。
前置条件
- Docker 已安装。【参考链接】
详细步骤
第一步: 配置 docker-compose.yaml 配置文件
services:
prod_zookeeper:
container_name: prod_zookeeper
image: wurstmeister/zookeeper:latest
ports:
- "30052:2181"
networks:
- kafka-net
environment:
- ALLOW_ANONYMOUS_LOGIN=yes
restart: always
prod_kafka:
container_name: prod_kafka
image: wurstmeister/kafka:latest
ports:
- "30053:9092"
networks:
- kafka-net
environment:
- ALLOW_PLAINTEXT_LISTENER=yes
- KAFKA_ZOOKEEPER_CONNECT=prod_zookeeper:2181
- KAFKA_LISTENERS=PLAINTEXT://prod_kafka:9092
depends_on:
- prod_zookeeper
restart: always
networks:
kafka-net:
driver: bridge
ipam:
driver: default
config:
- subnet: 172.1.0.0/16
gateway: 172.1.0.1
Note:
- 桥接网络的 ip 请根据自身的需求进行变更。
- 如 kafka需允许外部访问,环境变量配置可做如下更新,其中 192.168.122.10 为宿主机 ip 地址
- - KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092
- - KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.122.10:30053
第二步: 启动容器
myserver@pega-minikube-poc:~/pega/kafka$ docker compose up -d
[+] Running 3/3
✔ Network kafka_kafka-net Created
✔ Container prod_zookeeper Started
✔ Container prod_kafka Started
第三步: 查看容器状态
myserver@pega-minikube-poc:~/pega/kafka$ docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d695129e5a31 wurstmeister/kafka:latest "start-kafka.sh" 16 seconds ago Up 14 seconds 0.0.0.0:30053->9092/tcp, [::]:30053->9092/tcp prod_kafka
7fdae4bafbb5 wurstmeister/zookeeper:latest "/bin/sh -c '/usr/sb…" 21 seconds ago Up 14 seconds 22/tcp, 2888/tcp, 3888/tcp, 0.0.0.0:30052->2181/tcp, [::]:30052->2181/tcp prod_zookeeper
第四步: 查看启动日志
myserver@pega-minikube-poc:~/pega/postgres$ docker logs -f --tail 10 prod_zookeeper
2025-02-19 08:34:44,126 [myid:] - INFO [main:NIOServerCnxnFactory@89] - binding to port 0.0.0.0/0.0.0.0:2181
2025-02-19 08:34:46,222 [myid:] - INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxnFactory@215] - Accepted socket connection from /172.1.0.3:48368
2025-02-19 08:34:46,232 [myid:] - INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:ZooKeeperServer@949] - Client attempting to establish new session at /172.1.0.3:48368
2025-02-19 08:34:46,235 [myid:] - INFO [SyncThread:0:FileTxnLog@213] - Creating new log file: log.1
2025-02-19 08:34:46,268 [myid:] - INFO [SyncThread:0:ZooKeeperServer@694] - Established session 0x10004ea021e0000 with negotiated timeout 18000 for client /172.1.0.3:48368
2025-02-19 08:34:46,377 [myid:] - INFO [ProcessThread(sid:0 cport:2181)::PrepRequestProcessor@653] - Got user-level KeeperException when processing sessionid:0x10004ea021e0000 type:create cxid:0x2 zxid:0x3 txntype:-1 reqpath:n/a Error Path:/brokers Error:KeeperErrorCode = NoNode for /brokers
2025-02-19 08:34:46,403 [myid:] - INFO [ProcessThread(sid:0 cport:2181)::PrepRequestProcessor@653] - Got user-level KeeperException when processing sessionid:0x10004ea021e0000 type:create cxid:0x6 zxid:0x7 txntype:-1 reqpath:n/a Error Path:/config Error:KeeperErrorCode = NoNode for /config
2025-02-19 08:34:46,422 [myid:] - INFO [ProcessThread(sid:0 cport:2181)::PrepRequestProcessor@653] - Got user-level KeeperException when processing sessionid:0x10004ea021e0000 type:create cxid:0x9 zxid:0xa txntype:-1 reqpath:n/a Error Path:/admin Error:KeeperErrorCode = NoNode for /admin
2025-02-19 08:34:46,715 [myid:] - INFO [ProcessThread(sid:0 cport:2181)::PrepRequestProcessor@653] - Got user-level KeeperException when processing sessionid:0x10004ea021e0000 type:create cxid:0x18 zxid:0x16 txntype:-1 reqpath:n/a Error Path:/cluster Error:KeeperErrorCode = NoNode for /cluster
2025-02-19 08:34:48,192 [myid:] - INFO [ProcessThread(sid:0 cport:2181)::PrepRequestProcessor@596] - Got user-level KeeperException when processing sessionid:0x10004ea021e0000 type:multi cxid:0x40 zxid:0x1f txntype:-1 reqpath:n/a aborting remaining multi ops. Error Path:/admin/preferred_replica_election Error:KeeperErrorCode = NoNode for /admin/preferred_replica_election
myserver@pega-minikube-poc:~/pega/postgres$ docker logs -f --tail 10 prod_kafka
[2025-02-19 08:34:48,008] INFO [ExpirationReaper-1001-AlterAcls]: Starting (kafka.server.DelayedOperationPurgatory$ExpiredOperationReaper)
[2025-02-19 08:34:48,039] INFO [/config/changes-event-process-thread]: Starting (kafka.common.ZkNodeChangeNotificationListener$ChangeEventProcessThread)
[2025-02-19 08:34:48,050] INFO [SocketServer listenerType=ZK_BROKER, nodeId=1001] Starting socket server acceptors and processors (kafka.network.SocketServer)
[2025-02-19 08:34:48,074] INFO [SocketServer listenerType=ZK_BROKER, nodeId=1001] Started data-plane acceptor and processor(s) for endpoint : ListenerName(PLAINTEXT) (kafka.network.SocketServer)
[2025-02-19 08:34:48,075] INFO [SocketServer listenerType=ZK_BROKER, nodeId=1001] Started socket server acceptors and processors (kafka.network.SocketServer)
[2025-02-19 08:34:48,081] INFO Kafka version: 2.8.1 (org.apache.kafka.common.utils.AppInfoParser)
[2025-02-19 08:34:48,081] INFO Kafka commitId: 839b886f9b732b15 (org.apache.kafka.common.utils.AppInfoParser)
[2025-02-19 08:34:48,081] INFO Kafka startTimeMs: 1739954088075 (org.apache.kafka.common.utils.AppInfoParser)
[2025-02-19 08:34:48,084] INFO [KafkaServer id=1001] started (kafka.server.KafkaServer)
[2025-02-19 08:34:48,276] INFO [broker-1001-to-controller-send-thread]: Recorded new controller, from now on will use broker prod_kafka:9092 (id: 1001 rack: null) (kafka.server.BrokerToControllerRequestThread)
以上便是本文的全部内容,感谢您的阅读。