docker安装mysql多版本
1、镜像下载
C/C++ Code复制内容到剪贴板
- docker pull mysql:8.0
2、镜像启动时,参数挂载
卷挂载情况:
| 宿主机路径 | 容器路径 | 用途 |
| xxx/docker/mysql80/data | /var/lib/mysql | 数据库数据文件,持久化数据库内容 |
| docker/mysql80/logs | /var/log/mysql | 独立日志文件夹,方便清理日志,不会影响数据卷 |
| docker/mysql80/conf | /etc/mysql/conf.d | 自定义 MySQL 配置,可以放 .cnf 文件 |
优点:
数据和日志分开,容器体积不会膨胀
配置和数据都持久化,重启容器不会丢数据
日志独立,方便手动清理或轮转
3、Environment variables
| 变量 | 值 | 作用 |
| MYSQL_ROOT_PASSWORD | 123456 | root用户密码 |
| MYSQL_USER | guest | 创建普通用户 guest |
| MYSQL_PASSWORD | guest123456 | guest 用户密码 |
| MYSQL_DATABASE | guest | 启动时自动创建 guest 数据库 |
优点:
容器启动时自动创建数据库和用户
后续应用可以直接用 guest/guest123456 连接 guest 数据库
root 用户也可用 123456 进行管理
清理日志(以后容器运行一段时间后)
# 清空日志文件
rm -rf "/xxx/docker/mysql80/logs/*"
挂载自定义配置文件
在 /Users/yoyo/docker/mysql80/conf/ 放 .cnf 文件,例如调整 max_connections、innodb_buffer_pool_size 等
容器重启后配置生效
宿主机端口(Host Port)
这个端口决定你从 Mac 或 NAS 访问容器 MySQL 的端口
如果你只启动一个容器,可以映射 3306:3306
如果启动多个 MySQL 容器,需要 宿主机端口不重复,例如:
容器 容器端口 宿主机端口 备注
mysql80 3306 3308 第一个容器,Host Port 用 3308
mysql81 3306 3309 第二个容器,Host Port 用 3309
