zookeeper和kafka集群搭建

services:
  portainer:
    image: portainer/portainer
    restart: always
    hostname: portainer
    container_name: portainer
    privileged: true
    ports:
      - "10018:9000"
    command: -H unix:///var/run/docker.sock
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./portainer/data:/data




  zk1:
    image: zookeeper:3.7.2
    restart: always
    hostname: zk1
    container_name: zk1
    privileged: true
    ports:
      - "2181:2181"
    volumes:
      - ./zk1/data:/data
      - ./zk1/datalog:/datalog
      - ./zk1/conf:/conf
      - /etc/timezone:/etc/timezone
      - /etc/localtime:/etc/localtime
    environment:
      ZOO_MY_ID: 1
      ZOO_SERVERS: server.1=0.0.0.0:2888:3888;2181 server.2=zk2:2888:3888;2181 server.3=zk3:2888:3888;2181
    networks:
      net_xc:
        ipv4_address: 172.23.0.11
     
  zk2:
    image: zookeeper:3.7.2
    restart: always
    hostname: zk2
    container_name: zk2
    privileged: true
    ports:
      - "2182:2181"
    volumes:
      - ./zk2/data:/data
      - ./zk2/datalog:/datalog    
      - ./zk2/conf:/conf
      - /etc/timezone:/etc/timezone
      - /etc/localtime:/etc/localtime
    environment:
      ZOO_MY_ID: 2
      ZOO_SERVERS: server.1=zk1:2888:3888;2181 server.2=0.0.0.0:2888:3888;2181 server.3=zk3:2888:3888;2181
    networks:
      net_xc:
        ipv4_address: 172.23.0.12    
     
  zk3:
    image: zookeeper:3.7.2
    restart: always
    hostname: zk3
    container_name: zk3
    privileged: true
    ports:
      - "2183:2181"
    volumes:
      - ./zk3/data:/data
      - ./zk3/datalog:/datalog    
      - ./zk3/conf:/conf
      - /etc/timezone:/etc/timezone
      - /etc/localtime:/etc/localtime
    environment:
      ZOO_MY_ID: 3
      ZOO_SERVERS: server.1=zk1:2888:3888;2181 server.2=zk2:2888:3888;2181 server.3=0.0.0.0:2888:3888;2181
    networks:
      net_xc:
        ipv4_address: 172.23.0.13    




  kafka1:
    image: wurstmeister/kafka
    restart: always
    container_name: kafka1
    hostname: kafka1
    privileged: true
    ports:
      - "9092:9092"
    environment:
      KAFKA_ADVERTISED_HOST_NAME: kafka1
      KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://192.168.3.14:9092
      KAFKA_ADVERTISED_PORT: 9092
      KAFKA_ZOOKEEPER_CONNECT: 192.168.3.14:2181,192.168.3.14:2182,192.168.3.14:2183
      KAFKA_BROKER_ID: 1
      KAFKA_OFFSSETS_TOPIC_REPLICATION_FACTOR: 1
    volumes:
      - ./kafka1:/kafka
      - /etc/timezone:/etc/timezone
      - /etc/localtime:/etc/localtime
    networks:
      net_xc:
        ipv4_address: 172.23.0.1
    depends_on:
      - "zk1"
      - "zk2"
      - "zk3"
   
  kafka2:
    image: wurstmeister/kafka
    restart: always
    container_name: kafka2
    hostname: kafka2
    privileged: true
    ports:
      - "9093:9092"
    environment:
      KAFKA_ADVERTISED_HOST_NAME: kafka2
      KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://192.168.3.14:9093
      KAFKA_ADVERTISED_PORT: 9093
      KAFKA_ZOOKEEPER_CONNECT: 192.168.3.14:2181,192.168.3.14:2182,192.168.3.14:2183
      KAFKA_BROKER_ID: 2
      KAFKA_OFFSSETS_TOPIC_REPLICATION_FACTOR: 1
    volumes:
      - ./kafka2:/kafka
      - /etc/timezone:/etc/timezone
      - /etc/localtime:/etc/localtime
    networks:
      net_xc:
        ipv4_address: 172.23.0.2
    depends_on:
      - "zk1"
      - "zk2"
      - "zk3"
   
  kafka3:
    image: wurstmeister/kafka
    restart: always
    container_name: kafka3
    hostname: kafka3
    privileged: true
    ports:
      - "9094:9092"
    environment:
      KAFKA_ADVERTISED_HOST_NAME: kafka3
      KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://192.168.3.14:9094
      KAFKA_ADVERTISED_PORT: 9094
      KAFKA_ZOOKEEPER_CONNECT: 192.168.3.14:2181,192.168.3.14:2182,192.168.3.14:2183
      KAFKA_BROKER_ID: 3
      KAFKA_OFFSSETS_TOPIC_REPLICATION_FACTOR: 1
    volumes:
      - ./kafka3:/kafka
      - /etc/timezone:/etc/timezone
      - /etc/localtime:/etc/localtime
    networks:
      net_xc:
        ipv4_address: 172.23.0.3
    depends_on:
      - "zk1"
      - "zk2"
      - "zk3"




  rabbitmq:
    image: rabbitmq:3.8-management
    container_name: rabbitmq
    ports:
      - "5672:5672"
      - "15672:15672"
    networks:
      net_xc:
        ipv4_address: 172.23.0.7




  mysql:
    image: mysql:8.1.0
    container_name: mysql
    ports:
      - "3306:3306"
    volumes:
      - ./mysql/db:/var/lib/mysql
      - ./mysql/etc/my.cnf:/etc/my.cnf
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    environment:
      - MYSQL_ROOT_PASSWORD=D*179$9rU6uueqw32#
      - TZ=Asia/Shanghai
    restart: unless-stopped
    privileged: true
    networks:
      net_xc:
        ipv4_address: 172.23.0.8
  redis:
    image: redis:7.2.4
    container_name: redis
    ports:
      - "6379:6379"
    volumes:
      - ./redis/data:/data
      - ./redis/etc/redis.conf:/etc/redis/redis.conf
    restart: unless-stopped
    command: ["redis-server", "/etc/redis/redis.conf"]
    networks:
      net_xc:
        ipv4_address: 172.23.0.9




  nacos:
    image: nacos/nacos-server:v2.2.0
    container_name: nacos
    restart: unless-stopped
    volumes:
      - "./nacos/logs:/home/nacos/logs"
    environment:
      - PREFER_HOST_MODE=hostname
      - MODE=standalone
      - SPRING_DATASOURCE_PLATFORM=mysql
      - MYSQL_SERVICE_HOST=172.23.0.8
      - MYSQL_SERVICE_DB_NAME=nacos_config
      - MYSQL_SERVICE_PORT=3306
      - MYSQL_SERVICE_USER=root
      - MYSQL_SERVICE_PASSWORD=D*179$9rU6uueqw32#
      - MYSQL_SERVICE_DB_PARAM=allowPublicKeyRetrieval=true
      - JVM_XMS=1024m
      - JVM_XMX=1024m
      - JVM_XMN=512m
      - JVM_MS=128m
      - JVM_MMS=320m
    ports:
      - "8848:8848"
      - "9848:9848"
      - "9849:9849"
      - "7848:7848"
    mem_limit: 2048m
    networks:
      net_xc:
        ipv4_address: 172.23.0.10
    depends_on:
      - mysql




networks:
  net_xc:
    driver: bridge
    ipam:
      driver: default
      config:
        - subnet: 172.23.0.0/25
          gateway: 172.23.0.20
Categories: docker与kubernetes