使用Docker Compose 安装Kafka和KafkaUI

2,016 阅读1分钟
  1. 先安装Docker
  2. 在本地目录创建一个目录(可随意起名,这里使用的是kafka)
  3. 在该目录创建一个文件docker-compose.yml image.png
  4. 填写文件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 地址。

  1. 输入:docker-compose up -d,启动容器

image.png 6. docker ps查看容器是否都启动成功了

image.png 7. 打开http://127.0.0.1:8080/,大功告成

image.png