LoginSignup
7
7

More than 5 years have passed since last update.

docker-compose で Kafka の動作確認

Posted at

docker-compose で Kafka の動作確認をしようとして、いつもハマるので基本的なやり方をメモしておく。

準備

ディレクトリを作って docker-compose.yml を書き込む。

$ mkdir kafka-test/
$ cd kafka-test/
$ vi docker-compose.yml

docker-compose.yml はこんな感じ。(KAFKA_ADVERTISED_HOST_NAME という環境変数の挙動がよく分かってなくていつもハマる。ちゃんと調べて理解しなきゃな…。)

version: '2'
services:
  zookeeper:
    image: wurstmeister/zookeeper
    ports:
      - "2181:2181"
  kafka:
    image: wurstmeister/kafka
    ports:
      - "9092"
    environment:
      KAFKA_ADVERTISED_HOST_NAME: 172.17.0.1
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock

Kafka/Zookeeper 起動

docker-compose up する。

$ docker-compose up -d
Creating network "kafkatest_default" with the default driver
Creating kafkatest_zookeeper_1
Creating kafkatest_kafka_1

ps でちゃんと立ち上がっていることを確認。

$ docker-compose ps
        Name                       Command               State                         Ports                        
-------------------------------------------------------------------------------------------------------------------
kafkatest_kafka_1       start-kafka.sh                   Up      0.0.0.0:32778->9092/tcp                            
kafkatest_zookeeper_1   /bin/sh -c /usr/sbin/sshd  ...   Up      0.0.0.0:2181->2181/tcp, 22/tcp, 2888/tcp, 3888/tcp

動作確認

ここでは公式のクイックスタートを参考に、基本的な操作を実行してみる。

トピック作成。

$ docker-compose exec kafka /opt/kafka/bin/kafka-topics.sh --create --zookeeper zookeeper:2181 --replication-factor 1 --partitions 1 --topic test
Created topic "test".

トピック一覧。

$ docker-compose exec kafka /opt/kafka/bin/kafka-topics.sh --list --zookeeper zookeeper:2181
test

メッセージ送信。

$ docker-compose exec kafka /opt/kafka/bin/kafka-console-producer.sh --broker-list kafka:9092 --topic test
test
test
test

メッセージ受信。

$ docker-compose exec kafka /opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server kafka:9092 --tic test --from-beginning
test
test
test

以上です。

参考資料

7
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
7