环境
windows
docker下载:Home - Docker
docker-compose官方示例:
Get started with Docker Compose | Docker Documentation
docker-compose
部署命令
docker-compose up
部署
1.先准备docker-compose.yml 文件,文件中有需要安装的mysql,redis,zookeeper,kafka。代码如下(可直接复制):
docker-compse文件说明:
version 版本:与docker对应我用的是最新版所以为3.8,可根据自己的docker版本切换,查看版本地址:
Compose file version 3 reference | Docker Documentation
services 服务:
images 镜像
container_name 容器名
ports 端口 3306:3306 对外端口:容器内端口 ,这个可以不一致看自己需要
environment 环境,配置一些服务需要的配置,如:mysql的 MYSQL_ROOT_PASSWORD 密码,TZ 同步上海时间
volumes 挂载 ,目的就是系统中的文件和容器中的文件相对应,可以达到不管哪边修改都可以同步更新的作用,备份数据的作用
mynetwork docker自定义网络创建
docker network create --subnet=172.18.18.0/24 mynetwork
version: '3.8' #版本与docker版本对应
services: #定义服务,一个service其实就是一个容器
mysql-01:
image: mysql
container_name: mysql-3306
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: 123456
TZ: Asia/Shanghai
volumes:
- D:/docker/mysql/3306/conf/my.cnf:/etc/mysql/my.cnf
- D:/docker/mysql/3306/log:/var/log/mysql
- D:/docker/mysql/3306/data:/var/lib/mysql
networks:
- persist
redis-01:
image: redis
container_name: redis-6379
ports:
- "6379:6379"
environment:
TZ: Asia/Shanghai
volumes:
- D:/docker/redis/6379/data:/data
- D:/docker/redis/6379/redis-server.conf:/etc/redis/redis-server.conf
networks:
- persist
zookeeper-01:
image: wurstmeister/zookeeper
container_name: zookeeper-2181
ports:
- "2181:2181"
environment:
TZ: Asia/Shanghai
volumes:
- D:/docker/zookeeper/2181/data:/data
- D:/docker/zookeeper/2181/datalog:/datalog
- D:/docker/zookeeper/2181/logs:/logs
networks:
- persist
kafka-01:
image: wurstmeister/kafka
container_name: kafka-9092
expose:
- "9999"
ports:
- "9092:9092"
- "9999:9999"
depends_on:
- zookeeper-01
environment:
KAFKA_BROKER_ID: 1
KAFKA_ZOOKEEPER_CONNECT: zookeeper-2181:2181
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka-01:9092
KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092
JMX_PORT: 9999 #启用远程JMX 监控面板用
TZ: Asia/Shanghai
volumes:
- /var/run/docker.sock:/var/run/docker.sock
networks:
- persist
kafka-02:
image: wurstmeister/kafka
container_name: kafka-9093
ports:
- "9093:9093"
depends_on:
- zookeeper-01
environment:
KAFKA_BROKER_ID: 2
KAFKA_ZOOKEEPER_CONNECT: zookeeper-2181:2181
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka-02:9093
KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9093
TZ: Asia/Shanghai
volumes:
- /var/run/docker.sock:/var/run/docker.sock
networks:
- persist
efak:
image: ydockerp/efak
container_name: efak
depends_on:
- kafka-01
- kafka-02
ports:
- "8048:8048"
volumes:
- D:/docker/efak/8048/system-config.properties:/opt/kafka-eagle/conf/system-config.properties
environment:
ZK_HOSTS: zookeeper-2181:2181
networks:
- persist
networks: # 使用已创建好的网络
persist: #可以当做compose 的别名
external: # 用于指定创建好的网络
name: mynetwork
注意:如果本地连接docker连接不上kafka则修改hosts文件
文件位置:C:\Windows\System32\drivers\etc
127.0.0.1 kafka-01
127.0.0.1 kafka-02
2. cmd 进入 docker-compose.yml 的文件位置,例如 我的位置在D:\docker\compose 然后输入命令
docker-compose up
3.就可以在docker中看到部署成功