Dockerfile은 아래처럼 (현시점 태그는 3.9.0)
FROM bitnami/kafka:latest
ENV KAFKA_PROCESS_ROLES=broker,controller
ENV KAFKA_NODE_ID=1
ENV KAFKA_CONTROLLER_QUORUM_VOTERS=1@localhost:9093
ENV KAFKA_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093
ENV KAFKA_LISTENER_SECURITY_PROTOCOL_MAP=PLAINTEXT:PLAINTEXT,CONTROLLER:PLAINTEXT
ENV KAFKA_INTER_BROKER_LISTENER_NAME=PLAINTEXT
ENV KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER
ENV KAFKA_LOG_DIRS=/tmp/kraft-logs
ENV KAFKA_CFG_AUTO_CREATE_TOPICS_ENABLE=true
실행
docker build -t kafka-local .
docker run -d -p 9092:9092 -p 9093:9093 kafka-local
topic 생성
docker exec -it kafka-local kafka-topics.sh --create \
--topic mytopic \
--bootstrap-server localhost:9092 \
--partitions 1 \
--replication-factor 1
메시지 전송
docker exec -it kafka-local kafka-console-producer.sh \
--topic mytopic \
--bootstrap-server localhost:9092
# > 프롬프트가 뜨면 아무 메시지나 입력하고 엔터키 입력 후 ctrl + D로 빠져 나옴
메시지 확인
docker exec -it kafka-local kafka-console-consumer.sh \
--topic mytopic \
--bootstrap-server localhost:9092 \
--from-beginning
# 전송된 메시지 확인 후 ctrl + C