1.添加subnet
    docker network create —driver bridge —subnet 172.30.0.0/16 kafka

    2.编写docker-compose.yml

    1. version: "3.4"
    2. services:
    3. zoo1:
    4. image: zookeeper:3.4
    5. restart: always
    6. hostname: zoo1
    7. container_name: zoo1
    8. ports:
    9. - 2184:2181
    10. volumes:
    11. - ./kafka/zkcluster/zoo1/data:/data
    12. - ./kafka/zkcluster/zoo1/datalog:/datalog
    13. environment:
    14. ZOO_MY_ID: 1
    15. ZOO_SERVERS: server.1=0.0.0.0:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888
    16. networks:
    17. kafka:
    18. ipv4_address: 172.30.0.11
    19. zoo2:
    20. image: zookeeper:3.4
    21. restart: always
    22. hostname: zoo2
    23. container_name: zoo2
    24. ports:
    25. - 2185:2181
    26. volumes:
    27. - ./kafka/zkcluster/zoo2/data:/data
    28. - ./kafka/zkcluster/zoo2/datalog:/datalog
    29. environment:
    30. ZOO_MY_ID: 2
    31. ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=0.0.0.0:2888:3888 server.3=zoo3:2888:3888
    32. networks:
    33. kafka:
    34. ipv4_address: 172.30.0.12
    35. zoo3:
    36. image: zookeeper:3.4
    37. restart: always
    38. hostname: zoo3
    39. container_name: zoo3
    40. ports:
    41. - 2186:2181
    42. volumes:
    43. - ./kafka/zkcluster/zoo3/data:/data
    44. - ./kafka/zkcluster/zoo3/datalog:/datalog
    45. environment:
    46. ZOO_MY_ID: 3
    47. ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=0.0.0.0:2888:3888
    48. networks:
    49. kafka:
    50. ipv4_address: 172.30.0.13
    51. kafka1:
    52. image: wurstmeister/kafka
    53. restart: always
    54. hostname: kafka1
    55. container_name: kafka1
    56. privileged: true
    57. ports:
    58. - 9092:9092
    59. environment:
    60. KAFKA_ADVERTISED_HOST_NAME: kafka1
    61. KAFKA_LISTENERS: PLAINTEXT://kafka1:9092
    62. KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka1:9092
    63. KAFKA_ADVERTISED_PORT: 9092
    64. KAFKA_ZOOKEEPER_CONNECT: zoo1:2181,zoo2:2181,zoo3:2181
    65. volumes:
    66. - ./kafka/kafkaCluster/kafka1/logs:/kafka
    67. networks:
    68. kafka:
    69. ipv4_address: 172.30.1.11
    70. extra_hosts:
    71. - "zoo1:172.30.0.11"
    72. - "zoo2:172.30.0.12"
    73. - "zoo3:172.30.0.13"
    74. depends_on:
    75. - zoo1
    76. - zoo2
    77. - zoo3
    78. external_links:
    79. - zoo1
    80. - zoo2
    81. - zoo3
    82. kafka2:
    83. image: wurstmeister/kafka
    84. restart: always
    85. hostname: kafka2
    86. container_name: kafka2
    87. privileged: true
    88. ports:
    89. - 9093:9093
    90. environment:
    91. KAFKA_ADVERTISED_HOST_NAME: kafka2
    92. KAFKA_LISTENERS: PLAINTEXT://kafka2:9093
    93. KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka2:9093
    94. KAFKA_ADVERTISED_PORT: 9093
    95. KAFKA_ZOOKEEPER_CONNECT: zoo1:2181,zoo2:2181,zoo3:2181
    96. volumes:
    97. - ./kafka/kafkaCluster/kafka2/logs:/kafka
    98. networks:
    99. kafka:
    100. ipv4_address: 172.30.1.12
    101. extra_hosts:
    102. - "zoo1:172.30.0.11"
    103. - "zoo2:172.30.0.12"
    104. - "zoo3:172.30.0.13"
    105. depends_on:
    106. - zoo1
    107. - zoo2
    108. - zoo3
    109. external_links:
    110. - zoo1
    111. - zoo2
    112. - zoo3
    113. kafka3:
    114. image: wurstmeister/kafka
    115. restart: always
    116. hostname: kafka3
    117. container_name: kafka3
    118. privileged: true
    119. ports:
    120. - 9094:9094
    121. environment:
    122. KAFKA_ADVERTISED_HOST_NAME: kafka3
    123. KAFKA_LISTENERS: PLAINTEXT://kafka3:9094
    124. KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka3:9094
    125. KAFKA_ADVERTISED_PORT: 9094
    126. KAFKA_ZOOKEEPER_CONNECT: zoo1:2181,zoo2:2181,zoo3:2181
    127. volumes:
    128. - ./kafka/kafkaCluster/kafka3/logs:/kafka
    129. networks:
    130. kafka:
    131. ipv4_address: 172.30.1.13
    132. extra_hosts:
    133. - "zoo1:172.30.0.11"
    134. - "zoo2:172.30.0.12"
    135. - "zoo3:172.30.0.13"
    136. depends_on:
    137. - zoo1
    138. - zoo2
    139. - zoo3
    140. external_links:
    141. - zoo1
    142. - zoo2
    143. - zoo3
    144. networks:
    145. kafka:
    146. external:
    147. name: kafka

    3.启动容器
    docker-compose up -d