Multi node Kafka cluster by docker compose - grant-guo/Ideas GitHub Wiki

docker-compose file:

version: '2.1'
services:
  zk1:
    container_name: zk1
    hostname: zk1
    image: zookeeper:latest
    environment:
      ZOO_MY_ID: 1
      ZOO_SERVERS: server.1=zk1:2888:3888;2181 server.2=zk2:2888:3888;2181 server.3=zk3:2888:3888;2181
    ports:
      - 12181:2181
  zk2:
    container_name: zk2
    hostname: zk2
    image: zookeeper:latest
    environment:
      ZOO_MY_ID: 2
      ZOO_SERVERS: server.1=zk1:2888:3888;2181 server.2=zk2:2888:3888;2181 server.3=zk3:2888:3888;2181
    ports:
      - 22181:2181
  zk3:
    container_name: zk3
    hostname: zk3
    image: zookeeper:latest
    environment:
      ZOO_MY_ID: 3
      ZOO_SERVERS: server.1=zk1:2888:3888;2181 server.2=zk2:2888:3888;2181 server.3=zk3:2888:3888;2181
    ports:
      - 32181:2181

  kafka1:
    container_name: kafka1
    hostname: kafka1
    image: confluentinc/cp-kafka:latest
    depends_on:
      - zk1
      - zk2
      - zk3
    ports:
      - 19092:19092
    environment:
      KAFKA_BROKER_ID: 1
      KAFKA_ZOOKEEPER_CONNECT: zk1:2181,zk2:2181,zk3:2181
      KAFKA_ADVERTISED_LISTENERS: LISTENER_OUTER://10.106.54.190:19092,LISTENER_INNER://kafka1:9092
      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: LISTENER_OUTER:PLAINTEXT,LISTENER_INNER:PLAINTEXT
      KAFKA_INTER_BROKER_LISTENER_NAME: LISTENER_INNER
      KAFKA_LOG4J_ROOT_LOGLEVEL: ERROR

  kafka2:
    container_name: kafka2
    hostname: kafka2
    image: confluentinc/cp-kafka:latest
    depends_on:
      - zk1
      - zk2
      - zk3
    ports:
      - 29092:29092
    environment:
      KAFKA_BROKER_ID: 2
      KAFKA_ZOOKEEPER_CONNECT: zk1:2181,zk2:2181,zk3:2181
      KAFKA_ADVERTISED_LISTENERS: LISTENER_OUTER://10.106.54.190:29092,LISTENER_INNER://kafka2:9092
      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: LISTENER_OUTER:PLAINTEXT,LISTENER_INNER:PLAINTEXT
      KAFKA_INTER_BROKER_LISTENER_NAME: LISTENER_INNER
      KAFKA_LOG4J_ROOT_LOGLEVEL: ERROR


  kafka3:
    container_name: kafka3
    hostname: kafka3
    image: confluentinc/cp-kafka:latest
    depends_on:
      - zk1
      - zk2
      - zk3
    ports:
      - 39092:39092
    environment:
      KAFKA_BROKER_ID: 3
      KAFKA_ZOOKEEPER_CONNECT: zk1:2181,zk2:2181,zk3:2181
      KAFKA_ADVERTISED_LISTENERS: LISTENER_OUTER://10.106.54.190:39092,LISTENER_INNER://kafka3:9092
      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: LISTENER_OUTER:PLAINTEXT,LISTENER_INNER:PLAINTEXT
      KAFKA_INTER_BROKER_LISTENER_NAME: LISTENER_INNER
      KAFKA_LOG4J_ROOT_LOGLEVEL: ERROR