docker安装kafka(单机版)

1,799 阅读1分钟

添加docker network

docker network create -d bridge mynetwork

docker compose安装kafka,zookeeper

  • 替换192.168.0.104为本机IP
  • 替换/Users/wenchen/docker/kafka为本地路径

docker-compose.yml

version: "3"
services:
  zookeeper:
    image: docker.io/bitnami/zookeeper:3.8
    network_mode: network_kafka
    container_name: zookeeper_1
    ports:
      - "2181:2181"
    volumes:
      - /Users/wenchen/docker/kafka/zookeeper_1:/bitnami
    environment:
      - ALLOW_ANONYMOUS_LOGIN=yes
  kafka:
    image: docker.io/bitnami/kafka:3.4
    network_mode: network_kafka
    container_name: kafka_1
    ports:
      - "9092:9092"
    volumes:
      - /Users/wenchen/docker/kafka/kafka_1:/bitnami
    environment:
      - KAFKA_BROKER_ID=1
      - KAFKA_CFG_LISTENERS=PLAINTEXT://:9092
      - KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://192.168.0.104:9092
      - KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper:2181
      - ALLOW_PLAINTEXT_LISTENER=yes
    depends_on:
      - zookeeper

docker-compose.yml文件目录下运行

docker compose -f docker-compose.yml up

docker compose安装kafka-ui

  • 替换/Users/wenchen/docker/kafka为本地路径

docker-compose.yml

version: "3"
services:
  kafka-ui:
    image: provectuslabs/kafka-ui:latest
    network_mode: network_kafka
    container_name: kafka-ui
    restart: always
    ports:
      - 9091:8080
    volumes:
      - /Users/wenchen/docker/kafka-ui/etc/localtime:/etc/localtime
    environment:
      # 集群名称
      - KAFKA_CLUSTERS_0_NAME=local
      # 集群地址
      - KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS=kafka_1:9092

docker-compose.yml文件目录下运行

docker compose -f docker-compose.yml up

kafka操作

#进入容器
docker exec -it kafka_1 /bin/bash

#进入目录
cd /opt/bitnami/kafka/bin/

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

Created topic test.

#查看所有Topic
kafka-topics.sh --list --bootstrap-server localhost:9092

test

#查看topic详情
kafka-topics.sh --describe --bootstrap-server localhost:9092 --topic test

Topic: test	TopicId: dW0aGlwTR3aXq4_370T4kw	PartitionCount: 3	ReplicationFactor: 1	Configs:
	Topic: test	Partition: 0	Leader: 1	Replicas: 1	Isr: 1
	Topic: test	Partition: 1	Leader: 1	Replicas: 1	Isr: 1
	Topic: test	Partition: 2	Leader: 1	Replicas: 1	Isr: 1

# 启动一个生产者(输入消息)
kafka-console-producer.sh --broker-list localhost:9092 --topic test
[等待输入自己的内容 出现>输入即可]
>i am a new msg !
>i am a good msg ?

# 启动一个消费者(等待消息) 
# 注意这里的--from-beginning,每次都会从头开始读取,你可以尝试去掉和不去掉看下效果
kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
[等待消息]
i am a new msg !
i am a good msg ?