带有zookeeper版本如下:
version: '3'
services:
zookeeper:
image: 'bitnami/zookeeper:3.8.0'
container_name: zookeeper
ports:
- "2181:2181"
environment:
TZ: Asia/Shanghai
ALLOW_ANONYMOUS_LOGIN: "yes"
ZOO_SERVER_ID: 1
ZOO_PORT_NUMBER: 2181
network_mode: "host"
kafka:
image: 'bitnami/kafka:3.2.0'
container_name: kafka
ports:
- "9092:9092"
environment:
TZ: Asia/Shanghai
# 更多变量 查看文档 https://github.com/bitnami/bitnami-docker-kafka/blob/master/README.md
KAFKA_BROKER_ID: 1
# 监听端口
KAFKA_CFG_LISTENERS: PLAINTEXT://:9092
# 实际访问ip 本地用 127 内网用 192 外网用 外网ip
KAFKA_CFG_ADVERTISED_LISTENERS: PLAINTEXT://192.168.31.165:9092
KAFKA_CFG_ZOOKEEPER_CONNECT: 127.0.0.1:2181
ALLOW_PLAINTEXT_LISTENER: "yes"
volumes:
- /docker/kafka/data:/bitnami/kafka/data
depends_on:
- zookeeper
network_mode: "host"
kafka-manager:
image: sheepkiller/kafka-manager:latest
container_name: kafka-manager
ports:
- "19092:19092"
environment:
ZK_HOSTS: 127.0.0.1:2181
APPLICATION_SECRET: letmein
KAFKA_MANAGER_USERNAME: ruoyi
KAFKA_MANAGER_PASSWORD: ruoyi123
KM_ARGS: -Dhttp.port=19092
depends_on:
- kafka
network_mode: "host"
参考资料:docker-compose 安装 Kafka 3.X 附带可视化界面_疯狂的狮子Li的博客-CSDN博客
无zookeeper版本kafka3集群:
version: "3"
services:
kafka1:
image: 'bitnami/kafka:lastest'
user: root
ports:
- 19092:9092
- 19093:9093
environment:
- KAFKA_ENABLE_KRAFT=yes
- KAFKA_CFG_PROCESS_ROLES=broker,controller
- KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER
- KAFKA_CFG_LISTENER=PLAINTEXT://:19092,CONTROLLER://:19093
- KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
- KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://192.168.1.102:19092 #宿主机ip
- KAFKA_BROKER_ID=1
- KAFKA_KRAFT_CLUSTER_ID=admin123
- KAFKA_CFG_CONTROLLER_QUORUM_VOYERS=1@kafka1:9093,2@kafka2:9093,3@kafka3:993
- ALLOW_PLAINTEXT_LISTENER=yes
volumes:
- ./kkraft1:/bitnami/kafka:rw
- /etc/timezone:/etc/timezone
- /etc/localtime:/etc/localtime
networks:
net_kafka:
ipv4_address: 172.23.0.11
kafka2:
image: 'bitnami/kafka:lastest'
user: root
ports:
- 29092:9092
- 29093:9093
environment:
- KAFKA_ENABLE_KRAFT=yes
- KAFKA_CFG_PROCESS_ROLES=broker,controller
- KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER
- KAFKA_CFG_LISTENER=PLAINTEXT://:29092,CONTROLLER://:29093
- KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
- KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://192.168.1.102:29092 #宿主机ip
- KAFKA_BROKER_ID=2
- KAFKA_KRAFT_CLUSTER_ID=admin123
- KAFKA_CFG_CONTROLLER_QUORUM_VOYERS=1@kafka1:9093,2@kafka2:9093,3@kafka3:993
- ALLOW_PLAINTEXT_LISTENER=yes
volumes:
- ./kkraft1:/bitnami/kafka:rw
- /etc/timezone:/etc/timezone
- /etc/localtime:/etc/localtime
networks:
net_kafka:
ipv4_address: 172.23.0.12
kafka3:
image: 'bitnami/kafka:lastest'
user: root
ports:
- 39092:9092
- 39093:9093
environment:
- KAFKA_ENABLE_KRAFT=yes
- KAFKA_CFG_PROCESS_ROLES=broker,controller
- KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER
- KAFKA_CFG_LISTENER=PLAINTEXT://:39092,CONTROLLER://:39093
- KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
- KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://192.168.1.102:39092 #宿主机ip
- KAFKA_BROKER_ID=3
- KAFKA_KRAFT_CLUSTER_ID=admin123
- KAFKA_CFG_CONTROLLER_QUORUM_VOYERS=1@kafka1:9093,2@kafka2:9093,3@kafka3:993
- ALLOW_PLAINTEXT_LISTENER=yes
volumes:
- ./kkraft1:/bitnami/kafka:rw
- /etc/timezone:/etc/timezone
- /etc/localtime:/etc/localtime
networks:
net_kafka:
ipv4_address: 172.23.0.13
networks:
net_kafka:
driver: bridge
ipam:
driver: default
config:
- subnet: 172.23.0.0/24
- gateway: 172.23.0.1