compose.yaml文件如下
version: "3.9"
services:
#指定服务名称mysql、redis
mysql:
image: mysql:5.7.30
#指定容器名称
container_name: mysql
restart: always
#指定服务运行的端口
ports:
- "3306:3306"
#指定容器的环境变量
environment:
#数据库root密码的密码root
- MYSQL_ROOT_PASSWORD=123456
#创建的库
- MYSQL_DATABASE=smart-bar-dev
#允许多IP连接数据库
- MYSQL_ROOT_HOST=%
#挂载数据卷
volumes:
- ./mysql/data:/var/lib/mysql
- ./mysql/conf:/etc/mysql
- ./mysql/log:/var/log/mysql
mysql8:
image: mysql:8.0.32
#指定容器名称
container_name: mysql8
restart: always
#指定服务运行的端口
ports:
- "3307:3306"
#指定容器的环境变量
environment:
# 时区上海
TZ: Asia/Shanghai
# root 密码
MYSQL_ROOT_PASSWORD: 123456
# 初始化数据库(后续的初始化sql会在这个库执行)
MYSQL_DATABASE: nacos_config
# 初始化用户(不能是root 会报错, 后续需要给新用户赋予权限)
MYSQL_USER: nacos
# 用户密码
MYSQL_PASSWORD: nacos
#允许多IP连接数据库
MYSQL_ROOT_HOST: '%'
#挂载数据卷
volumes:
- ./mysql8/data:/var/lib/mysql
- ./mysql8/conf:/etc/mysql/conf.d
- ./mysql8/log:/var/log/mysql
command:
# 将mysql8.0默认密码策略 修改为 原先 策略 (mysql8.0对其默认策略做了更改 会导致密码无法匹配)
--default-authentication-plugin=mysql_native_password
--character-set-server=utf8mb4
--collation-server=utf8mb4_general_ci
--explicit_defaults_for_timestamp=true
--lower_case_table_names=1
redis:
#官方的Redis镜像image
image: redis:6.2.5
#指定容器名称
container_name: redis
restart: always
# Redis密码root
command: redis-server --requirepass 123456
ports:
- "6379:6379"
#挂载数据卷
#Redis 的密码需要自己在与容器共享的配置 redis.conf 中加入,即更改配置中 requirepass 为: requirepass yourpassword
volumes:
- ./redis/data:/data
mongodb:
#官方的mongodb镜像image
image: mongo
#指定容器名称
container_name: mongodb
restart: always
environment:
- MONGO_INITDB_ROOT_USERNAME=root
- MONGO_INITDB_ROOT_PASSWORD=123456
#restart: always
ports:
- "27017:27017"
#挂载数据卷
volumes:
- ./mongodb/data:/data/db
容器启动
docker compose up -d
启动成功如下图