docker-compose部署 kafka(非集群)--- kraft模式

280 阅读1分钟

原文地址

1. 新建kafka.yml

vim kafka.yml

内容如下:(可对volumns中的宿主机路径进行修改)

services:
  kafka:
    image: bitnami/kafka:3.6
    container_name: kafka
    ports:
      - "19092:9092"
    environment:
      - KAFKA_CFG_PROCESS_ROLES=broker,controller
      - KAFKA_CFG_NODE_ID=1
      - KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=1@localhost:9093
      - KAFKA_CFG_LISTENERS=PLAINTEXT://0.0.0.0:9092,CONTROLLER://0.0.0.0:9093
      - KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://kafka:9092
      - KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=PLAINTEXT:PLAINTEXT,CONTROLLER:PLAINTEXT
      - KAFKA_CFG_INTER_BROKER_LISTENER_NAME=PLAINTEXT
      - KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER
      - KAFKA_CFG_LOG_DIRS=/opt/kafka-logs
      - KAFKA_CFG_NUM_PARTITIONS=1
      - KAFKA_CFG_DEFAULT_REPLICATION_FACTOR=1
      - KAFKA_CFG_OFFSETS_TOPIC_REPLICATION_FACTOR=1
      - KAFKA_CFG_TRANSACTION_STATE_LOG_REPLICATION_FACTOR=1
      - KAFKA_CFG_TRANSACTION_STATE_LOG_MIN_ISR=1
      - KAFKA_CFG_MIN_INSYNC_REPLICAS=1
      - ALLOW_PLAINTEXT_LISTENER=yes
    volumes:
      - /home/kafka:/opt/kafka-logs
    networks:
      - kafka-network

networks:
  kafka-network:
    driver: bridge

2. 启动kafka

docker-compose -f kafka.yml up -d

3. 数据卷路径权限问题

chown -R 1001:1001 /home/kafka

4. 重新启动

5. 测试

5.1. 进入容器内

docker exec -it --user root kafka bash

5.2. 创建主题

kafka-topics.sh --bootstrap-server localhost:9092 --create --topic test --partitions 1 --replication-factor 1

5.3. 查看所有的主题

kafka-topics.sh --bootstrap-server localhost:9092 --list