- 先安装Docker
- 在本地目录创建一个目录(可随意起名,这里使用的是kafka)
- 在该目录创建一个文件docker-compose.yml
- 填写文件docker-compose.yml的内容
version: '3.5'
services:
zookeeper:
image: wurstmeister/zookeeper ## 镜像
container_name: zookeeper
ports:
- "2181:2181" ## 对外暴露的端口号
kafka:
image: wurstmeister/kafka ## 镜像
container_name: kafka
volumes:
- /etc/localtime:/etc/localtime ## 挂载位置
ports:
- "9092:9092"
environment:
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_ADVERTISED_LISTENERS: INSIDE://kafka:9092 #注意,这里不能设置成localhost和127.0.0.1
KAFKA_LISTENERS: INSIDE://0.0.0.0:9092
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INSIDE:PLAINTEXT
KAFKA_LISTENER_NAME_SELECTOR: INSIDE
KAFKA_INTER_BROKER_LISTENER_NAME: INSIDE
kafka-ui:
image: provectuslabs/kafka-ui
container_name: kafka-ui
ports:
- "8080:8080"
depends_on:
- kafka
environment:
DYNAMIC_CONFIG_ENABLED: 'true'
KAFKA_CLUSTERS_0_NAME: local
KAFKA_CLUSTERS_0_BOOTSTRAP_SERVERS: kafka:9092 # 使用 Kafka 服务的内部网络地址
可能的坑:KAFKA_ADVERTISED_LISTENERS不能写localhost和127.0.0.1,在 Docker 环境中,localhost 可能不适合外部客户端(如 Kafka-UI)访。尝试使用容器的名称或宿主机的 IP 地址。
- 输入:docker-compose up -d,启动容器
6. docker ps查看容器是否都启动成功了
7. 打开http://127.0.0.1:8080/,大功告成