본문 바로가기

빅데이터/Kafka

local kafka single broker 띄우기 with 도커

wurstmeister/kafka-docker는 사실상 표준(디팩토)으로 카프카 도커 이미지로 띄우는 용도로 사용하고 있습니다. 사용 방법은 아래와 같습니다.

$ git clone https://github.com/wurstmeister/kafka-docker.git
$ cd kafka-docker

wurstmeister/kafka-docker에 있는 docker-compose-single-broker.yml 의 내부 설정 중 KAFKA_ADVERTISED_HOST_NAME을 변경합니다.

$ vi docker-compose-single-broker.yml
version: '2'
services:
  zookeeper:
    image: wurstmeister/zookeeper
    ports:
      - "2181:2181"
  kafka:
    build: .
    ports:
      - "9092:9092"
    environment:
      KAFKA_ADVERTISED_HOST_NAME: 127.0.0.1
      KAFKA_CREATE_TOPICS: "test:1:1"
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock

docker-compose 명령어로 실행합니다.

$ docker-compose -f docker-compose-single-broker.yml up -d

docker ps로 이미지가 실행되었는지 확인합니다.

$ docker ps
CONTAINER ID   IMAGE                      COMMAND                  CREATED         STATUS         PORTS                                                NAMES
854025630ab4   kafka-docker_kafka         "start-kafka.sh"         4 minutes ago   Up 4 minutes   0.0.0.0:9092->9092/tcp                               kafka-docker_kafka_1
ac92a0fb70e5   wurstmeister/zookeeper     "/bin/sh -c '/usr/sb…"   4 minutes ago   Up 4 minutes   22/tcp, 2888/tcp, 3888/tcp, 0.0.0.0:2181->2181/tcp   kafka-docker_zookeeper_1
d88540e09734   streamsets/datacollector   "/docker-entrypoint.…"   5 months ago    Up 3 days      0.0.0.0:18630->18630/tcp                             sdc

kafka-console-producer, kafka-console-consumer로 토픽의 데이터를 날려서 확인합니다.

$ ./kafka-console-producer.sh --bootstrap-server localhost:9092 --topic test
> a
> b
> c

$ ./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test
a
b
c
반응형