Mysql的DockerCompose文件编写
直接上DockerCompose
version: "3"
services:
mysql:
# 名称
container_name: mysql
# 镜像
image: mysql:8.0.31
#docker启动,容器启动
restart: always
# 指定暴露端口
ports:
- "3306:3306"
environment:
# 等同于 -e MYSQL_ROOT_PASSWORD指定root的登录密码
MYSQL_ROOT_PASSWORD: 'root'
MYSQL_ALLOW_EMPTY_PASSWORD: 'no'
# 这里这个指令compose启动成功后会自动创建名为docker的数据库
MYSQL_DATABASE: 'base_master'
# 此处就是相当于 mysql create user,创建了数据库的登录用户
#MYSQL_USER: 'docker'
#MYSQL_PASSWORD: 'root'
volumes:
- /dockerData/compose/mysql/data:/var/lib/mysql
# 这里的my.cnf配置下面有简单实例
- /dockerData/compose/mysql/conf/my.cnf:/etc/my.cnf
- /dockerData/compose/mysql/log:/var/log/mysql
- /dockerData/compose/mysql/mysql-files:/var/lib/mysql-files
networks:
# 注意加入同一个网络
- public
# 解决外部无法访问 这个可有可无,连接不上在尝试打开。
#command: --default-authentication-plugin=mysql_native_password
networks:
# 默认将会创建为docker-compose.yaml所在 文件夹名_public网络名称
public:
# external: true表示网络已经在Docker外部定义好了
# 使用bridge驱动创建网络
driver: bridge
my.cnf文件实例
# 5.5版本不配置会中文乱码,在外部MySql连接工具看不出来,要到容器里面确认。8.0没有尝试,我是配置了没有问题。
# my.cnf文件实例
[client]
default_character_set=utf8mb4
[mysqld]
collation_server = utf8mb4_0900_ai_ci
character_set_server = utf8mb4
运行DockerCompose文件
在docker-compose.yaml所在文件夹里运行 -d表示后台启动
docker compose up -d