├── README.md ├── kafka ├── README.md └── docker-compose.yml ├── mongo └── docker-compose.yml ├── mysql.5.7.21 └── docker-compose.yml ├── mysql.8.0.2 └── docker-compose.yml ├── redis └── docker-compose.yml └── zookeeper ├── README.md └── docker-compose.yml /README.md: -------------------------------------------------------------------------------- 1 | # docker-compose 2 | Zookeeper集群&Kafka集群&KafkaManager的docker-compose.yml文件,具体使用方式请参考相应文件夹下具体步骤; 3 | Zookeeper镜像:wurstmeister/zookeeper 4 | Kakfa镜像:wurstmeister/kafka 5 | Kafka-Manager镜像:sheepkiller/kafka-manager 6 | > Tips:应先创建Docker网络(参考相应文件夹下的README.md),再安装`Zookeeper`,最后安装`Kafka`和`KafkaManager`; 7 | -------------------------------------------------------------------------------- /kafka/README.md: -------------------------------------------------------------------------------- 1 | # Docker搭建Kafka集群 2 | 3 | ⭕️ 使用本脚本之前,请先安装`Zookeeper` 集群 4 | 5 | 该脚本使用的 6 | 7 | > 修改了端口号;在使用过程中出现了只能连接上一个节点的问题。 8 | 9 | `Kafka`镜像为:**wurstmeister/kafka** 10 | 11 | `Kafka-manager`镜像为:**sheepkiller/kafka-manager** 12 | 13 | 1. 安装 `docker-compose` 14 | 15 | ``` 16 | # 获取脚本 17 | $ curl -L https://github.com/docker/compose/releases/download/1.25.0-rc2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose 18 | # 赋予执行权限 19 | $chmod +x /usr/local/bin/docker-compose 20 | ``` 21 | 22 | 2. 下载当前`docker-compose.yml` 23 | 24 | ``` 25 | wget https://raw.githubusercontent.com/JacianLiu/docker-compose/master/kafka/docker-compose.yml 26 | ``` 27 | 28 | 3. 新建 Docker 网络 29 | 30 | ``` 31 | docker network create --driver bridge --subnet 172.69.0.0/25 --gateway 172.69.0.1 kafka_zoo 32 | ``` 33 | 34 | 4. 执行命令 `docker-compose up -d` -------------------------------------------------------------------------------- /kafka/docker-compose.yml: -------------------------------------------------------------------------------- 1 | # 创建网络:docker network create --driver bridge --subnet 172.69.0.0/25 --gateway 172.69.0.1 kafka_zoo 2 | version: '2' 3 | services: 4 | broker1: 5 | image: wurstmeister/kafka 6 | restart: always 7 | hostname: broker1 8 | container_name: broker1 9 | ports: 10 | - "9091:9091" 11 | external_links: 12 | - zoo1 13 | - zoo2 14 | - zoo3 15 | environment: 16 | KAFKA_BROKER_ID: 1 17 | KAFKA_ADVERTISED_HOST_NAME: broker1 18 | KAFKA_ADVERTISED_PORT: 9091 19 | KAFKA_HOST_NAME: broker1 20 | KAFKA_ZOOKEEPER_CONNECT: zoo1:2181,zoo2:2181,zoo3:2181 21 | KAFKA_LISTENERS: PLAINTEXT://broker1:9091 22 | KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://broker1:9091 23 | JMX_PORT: 9988 24 | volumes: 25 | - /var/run/docker.sock:/var/run/docker.sock 26 | - "/Users/WuliGit/docker/volume/kafka/broker1/:/kafka" 27 | networks: 28 | default: 29 | ipv4_address: 172.69.0.11 30 | broker2: 31 | image: wurstmeister/kafka 32 | restart: always 33 | hostname: broker2 34 | container_name: broker2 35 | ports: 36 | - "9092:9092" 37 | external_links: 38 | - zoo1 39 | - zoo2 40 | - zoo3 41 | environment: 42 | KAFKA_BROKER_ID: 2 43 | KAFKA_ADVERTISED_HOST_NAME: broker2 44 | KAFKA_ADVERTISED_PORT: 9092 45 | KAFKA_HOST_NAME: broker2 46 | KAFKA_ZOOKEEPER_CONNECT: zoo1:2181,zoo2:2181,zoo3:2181 47 | KAFKA_LISTENERS: PLAINTEXT://broker2:9092 48 | KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://broker2:9092 49 | JMX_PORT: 9988 50 | volumes: 51 | - /var/run/docker.sock:/var/run/docker.sock 52 | - "/Users/WuliGit/docker/volume/kafka/broker2/:/kafka" 53 | networks: 54 | default: 55 | ipv4_address: 172.69.0.12 56 | broker3: 57 | image: wurstmeister/kafka 58 | restart: always 59 | hostname: broker3 60 | container_name: broker3 61 | ports: 62 | - "9093:9093" 63 | external_links: 64 | - zoo1 65 | - zoo2 66 | - zoo3 67 | environment: 68 | KAFKA_BROKER_ID: 3 69 | KAFKA_ADVERTISED_HOST_NAME: broker3 70 | KAFKA_ADVERTISED_PORT: 9093 71 | KAFKA_HOST_NAME: broker3 72 | KAFKA_ZOOKEEPER_CONNECT: zoo1:2181,zoo2:2181,zoo3:2181 73 | KAFKA_LISTENERS: PLAINTEXT://broker3:9093 74 | KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://broker3:9093 75 | JMX_PORT: 9988 76 | volumes: 77 | - /var/run/docker.sock:/var/run/docker.sock 78 | - "/Users/WuliGit/docker/volume/kafka/broker3/:/kafka" 79 | networks: 80 | default: 81 | ipv4_address: 172.69.0.13 82 | kafka-manager: 83 | image: sheepkiller/kafka-manager 84 | restart: always 85 | container_name: kafa-manager 86 | hostname: kafka-manager 87 | ports: 88 | - "9002:9000" 89 | links: # 连接本compose文件创建的container 90 | - broker1 91 | - broker2 92 | - broker3 93 | external_links: # 连接本compose文件以外的container 94 | - zoo1 95 | - zoo2 96 | - zoo3 97 | environment: 98 | ZK_HOSTS: zoo1:2181,zoo2:2181,zoo3:2181 99 | KAFKA_BROKERS: broker1:9091,broker2:9092,broker3:9093 100 | APPLICATION_SECRET: letmein 101 | KM_ARGS: -Djava.net.preferIPv4Stack=true 102 | networks: 103 | default: 104 | ipv4_address: 172.69.0.10 105 | networks: 106 | default: 107 | external: 108 | name: kafka_zoo 109 | -------------------------------------------------------------------------------- /mongo/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | services: 3 | mongo: 4 | image: mongo 5 | restart: always 6 | container_name: mongodb 7 | environment: 8 | - MONGO_INITDB_ROOT_USERNAME=jacian 9 | - MONGO_INITDB_ROOT_PASSWORD=jacian2018 10 | ports: 11 | - "27017:27017" 12 | volumes: 13 | - "/Users/WuliGit/docker/volume/mongo:/data/db" 14 | - "/Users/WuliGit/docker/volume/mongo-entrypoint/:/docker-entrypoint-initdb.d/" 15 | command: mongod 16 | -------------------------------------------------------------------------------- /mysql.5.7.21/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | services: 3 | db: 4 | #构建mysql镜像 5 | image: mysql:5.7.21 6 | container_name: mysql.5.7.21 # 容器名 7 | command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci #设置utf8字符集 8 | restart: always 9 | environment: 10 | MYSQL_ROOT_PASSWORD: root #root管理员用户密码 11 | # MYSQL_USER: test #创建test用户 12 | # MYSQL_PASSWORD: test #设置test用户的密码 13 | ports: 14 | - '3306:3306' #host物理直接映射端口为6606 15 | volumes: 16 | #mysql数据库挂载到host物理机目录/e/docker/mysql/data/db 17 | - "/Users/WuliGit/docker/volume/mysql.5.7.21" 18 | #容器的配置目录挂载到host物理机目录/e/docker/mysql/data/conf 19 | - "/Users/WuliGit/docker/volume/mysql.5.7.21/conf.d" -------------------------------------------------------------------------------- /mysql.8.0.2/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | services: 3 | db: 4 | #构建mysql镜像 5 | image: mysql:8.0.2 6 | container_name: mysql.8.0.2 # 容器名 7 | command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci #设置utf8字符集 8 | restart: always 9 | environment: 10 | MYSQL_ROOT_PASSWORD: root #root管理员用户密码 11 | # MYSQL_USER: test #创建test用户 12 | # MYSQL_PASSWORD: test #设置test用户的密码 13 | ports: 14 | - '3307:3306' #host物理直接映射端口为6606 15 | volumes: 16 | #mysql数据库挂载到host物理机目录/e/docker/mysql/data/db 17 | - "/Users/WuliGit/docker/volume/mysql.8.0.2" 18 | #容器的配置目录挂载到host物理机目录/e/docker/mysql/data/conf 19 | - "/Users/WuliGit/docker/volume/mysql.8.0.2/conf.d" 20 | -------------------------------------------------------------------------------- /redis/docker-compose.yml: -------------------------------------------------------------------------------- 1 | # 创建网络: docker network create --driver bridge --subnet 172.69.0.0/25 --gateway 172.69.0.1 kafka_zoo 2 | version: '3' 3 | services: 4 | redis: 5 | image: redis 6 | restart: always 7 | hostname: redis 8 | container_name: redis 9 | command: redis-server /usr/local/etc/redis/redis.conf 10 | ports: 11 | - "6379:6379" 12 | volumes: 13 | - "/Users/WuliGit/docker/volume/redis/data:/data" # “:”前改成自己的目录 14 | - "/Users/WuliGit/docker/volume/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf" # “:”前改成自己的目录 15 | -------------------------------------------------------------------------------- /zookeeper/README.md: -------------------------------------------------------------------------------- 1 | # Docker搭建Zookeeper集群 2 | 3 | 该脚本使用的 4 | 5 | ~~`zookeeper`镜像为:**zookeeper:3.4**~~ 6 | 7 | `zookeeper`镜像为:**wurstmeister/zookeeper** 8 | 9 | > 由于在使用的时候出现了点小问题,切换为和`Kafka`镜像同作者的`Zookeeper`镜像 10 | 11 | 1. 安装 `docker-compose` 12 | 13 | ``` 14 | # 获取脚本 15 | $ curl -L https://github.com/docker/compose/releases/download/1.25.0-rc2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose 16 | # 赋予执行权限 17 | $ chmod +x /usr/local/bin/docker-compose 18 | ``` 19 | 20 | 2. 下载当前`docker-compose.yml` 21 | 22 | ``` 23 | $ wget https://raw.githubusercontent.com/JacianLiu/docker-compose/master/zookeeper/docker-compose.yml 24 | ``` 25 | 26 | 3. 新建 Docker 网络 27 | 28 | ``` 29 | $ docker network create --driver bridge --subnet 172.69.0.0/25 --gateway 172.69.0.1 kafka_zoo 30 | ``` 31 | 32 | 4. 执行命令 `docker-compose up -d` -------------------------------------------------------------------------------- /zookeeper/docker-compose.yml: -------------------------------------------------------------------------------- 1 | # 创建网络: docker network create --driver bridge --subnet 172.69.0.0/25 --gateway 172.69.0.1 kafka_zoo 2 | version: '2' 3 | services: 4 | zoo1: 5 | image: wurstmeister/zookeeper 6 | restart: always 7 | hostname: zoo1 8 | container_name: zoo1 9 | ports: 10 | - "2181:2181" 11 | volumes: 12 | - "/Users/WuliGit/docker/volume/zookeeper/zoo1/data:/data" # “:”前改成自己的目录 13 | - "/Users/WuliGit/docker/volume/zookeeper/zoo1/datalog:/datalog" # “:”前改成自己的目录 14 | environment: 15 | ZOO_MY_ID: 1 16 | ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888 17 | networks: 18 | default: 19 | ipv4_address: 172.69.0.21 20 | zoo2: 21 | image: wurstmeister/zookeeper 22 | restart: always 23 | hostname: zoo2 24 | container_name: zoo2 25 | ports: 26 | - "2182:2181" 27 | volumes: 28 | - "/Users/WuliGit/docker/volume/zookeeper/zoo2/data:/data" 29 | - "/Users/WuliGit/docker/volume/zookeeper/zoo2/datalog:/datalog" 30 | environment: 31 | ZOO_MY_ID: 2 32 | ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888 33 | networks: 34 | default: 35 | ipv4_address: 172.69.0.22 36 | zoo3: 37 | image: wurstmeister/zookeeper 38 | restart: always 39 | hostname: zoo3 40 | container_name: zoo3 41 | ports: 42 | - "2183:2181" 43 | volumes: 44 | - "/Users/WuliGit/docker/volume/zookeeper/zoo3/data:/data" 45 | - "/Users/WuliGit/docker/volume/zookeeper/zoo3/datalog:/datalog" 46 | environment: 47 | ZOO_MY_ID: 3 48 | ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888 49 | networks: 50 | default: 51 | ipv4_address: 172.69.0.23 52 | # kafka-manager: 53 | # image: sheepkiller/kafka-manager 54 | # restart: always 55 | # container_name: kafa-manager 56 | # hostname: kafka-manager 57 | # ports: 58 | # - "9002:9000" 59 | # links: # 连接本compose文件创建的container 60 | # - broker1 61 | # - broker2 62 | # - broker3 63 | # external_links: # 连接本compose文件以外的container 64 | # - zoo1 65 | # - zoo2 66 | # - zoo3 67 | # environment: 68 | # ZK_HOSTS: zoo1:2181,zoo2:2181,zoo3:2181 69 | # KAFKA_BROKERS: broker1:9091,broker2:9092,broker3:9093 70 | # APPLICATION_SECRET: letmein 71 | # KM_ARGS: -Djava.net.preferIPv4Stack=true 72 | # networks: 73 | # default: 74 | # ipv4_address: 172.69.0.10 75 | networks: 76 | default: 77 | external: 78 | name: kafka_zoo 79 | --------------------------------------------------------------------------------