Kafka를 Docker 컨테이너로 실행하는 일반적인 방법은 Docker Compose를 사용하는 것입니다. 아래에 실행 방식, docker-compose.yml 샘플, 실제 실행/확인 명령을 단계별로 정리합니다.
1. docker-compose.yml 파일 작성
Kafka(와 ZooKeeper)를 실행하기 위한 docker-compose.yml 예시는 다음과 같습니다.
text
version: '3.8'
services:
zookeeper:
image: wurstmeister/zookeeper:latest
container_name: zookeeper
ports:
- "2181:2181"
kafka:
image: wurstmeister/kafka:latest
container_name: kafka
ports:
- "9092:9092"
environment:
KAFKA_ADVERTISED_HOST_NAME: 127.0.0.1
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
volumes:
- /var/run/docker.sock:/var/run/docker.sock
-
위 예제는 가장 기본적인 구조입니다.
-
필요에 따라 브로커 수, 네트워크, 토픽 자동 생성 등 많은 환경변수를 확장할 수 있습니다.
2. 컨테이너 실행 명령
작성한 docker-compose.yml 파일이 있는 폴더로 이동한 뒤 아래 명령어를 실행하세요.
bash
docker-compose up -d
-
모든 서비스(ZooKeeper, Kafka)가 백그라운드 모드로 실행됩니다.
3. 컨테이너 실행 상태 확인
컨테이너가 정상적으로 실행 중인지 다음 명령어로 확인할 수 있습니다.
bash
docker-compose ps
# 또는
docker ps
-
컨테이너 목록에 zookeeper, kafka가 나타나야 정상입니다.
4. Kafka 기능 확인 및 관리

컨테이너 내부에 접속하여 CLI로 Kafka 토픽을 생성하거나 프로듀서, 컨슈머를 테스트할 수 있습니다.
bash
docker exec -it kafka /bin/bash
# 예시: 토픽 생성
kafka-topics --create --topic test-topic --bootstrap-server localhost:9092 --partitions 1 --replication-factor 1
-
컨테이너 내부에서 CLI 기반 관리가 가능합니다.
위 방식대로 하면 로컬 혹은 서버 환경에서 Kafka를 손쉽게 컨테이너 형태로 실행할 수 있습니다.