1.编写需要的Dockerfile
注:因为rabbitmq需要查看web图形界面,我们需要编写Dockerfile为rabbitmq实例执行时启动插件
FROM rabbitmq
RUN rabbitmq-plugins enable --offline rabbitmq_management rabbitmq_mqtt rabbitmq_federation_management rabbitmq_stomp
2.编写docker-compose
# build: .# 从当前目录加载Dockerfile生成所需镜像
# ${host docker Contents} # 一般为/usr/local/docker
# version: "3.3" # docker-compose的版本要对应
# 若数据卷挂载宿主机目录为空,需要自己手动配置(到官网下载初始配置文件,或者运行一个新的实例 docker cp 出相应文件)
version: "3.3"
services:
rabbitmq:
# build: . #运行当前目录下的Dockerfile得到image
image: rabbitmq:3.8.3-management
ports:
- "5672:5672"
- "15672:15672"
volumes:
- ${host docker Contents}/rabbitmq/data:/var/lib/rabbitmq
- ${host docker Contents}/rabbitmq/conf/rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf
- ${host docker Contents}/rabbitmq/logs/:/var/log/rabbitmq/log/
environment:
RABBITMQ_DEFAULT_USER: admin
RABBITMQ_DEFAULT_PASS: rbmq
mysql:
image: mysql:5.7
ports:
- "3305:3306"
volumes:
- ${host docker Contents}/mysql/conf:/etc/mysql/conf.d
- ${host docker Contents}/mysql/data:/var/lib/mysql
- ${host docker Contents}/mysql/logs:/var/log/mysql
environment:
MYSQL_ROOT_PASSWORD: mysql
redis:
image: redis
ports:
- "6380:6379"
volumes:
- ${host docker Contents}/redis/conf:/etc/redis/
- ${host docker Contents}/redis/data:/data
- ${host docker Contents}/redis/log/:/usr/local/redis/log/
# 默认会把一个docker-compose内的实例运行在同一个docker net
# 自定义默认网络
networks:
default:
external:
name: env_network