1. 为什么选择Docker部署MySQL?
在开发和生产环境中,数据库部署一直是个让人头疼的问题。传统方式直接在主机上安装MySQL,不仅容易污染系统环境,还会遇到版本冲突、依赖问题等各种麻烦。我在过去五年里至少处理过上百次MySQL安装失败的问题,直到开始使用Docker,这些问题才真正得到解决。
Docker容器化部署MySQL有几个不可替代的优势:
- 环境隔离:每个MySQL实例运行在独立的容器中,互不干扰
- 快速部署:一条命令就能启动一个全新的MySQL实例
- 版本管理:可以同时运行MySQL 5.7和8.0,随时切换测试
- 资源控制:可以精确限制每个容器的CPU、内存使用量
- 数据持久化:通过卷(volume)挂载,数据安全有保障
提示:生产环境建议使用指定版本(如mysql:5.7)而非latest标签,避免自动升级导致兼容性问题
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 准备工作与环境检查
2.1 Docker环境确认
在开始之前,我们需要确保Docker已经正确安装。执行以下命令检查Docker版本:
bash复制docker --version
# 输出示例:Docker version 20.10.17, build 100c701
docker-compose --version
# 输出示例:docker-compose version 1.29.2, build 5becea4c
如果尚未安装Docker,可以参考以下快速安装命令(以Ubuntu为例):
bash复制# 卸载旧版本
sudo apt-get remove docker docker-engine docker.io containerd runc
# 安装依赖
sudo apt-get update
sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release
# 添加Docker官方GPG密钥
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# 设置稳定版仓库
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 安装Docker引擎
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
# 验证安装
sudo docker run hello-world
2.2 系统资源评估
MySQL对系统资源有一定要求,建议在部署前检查:
bash复制# 查看可用内存(单位MB)
free -m
# 查看CPU核心数
nproc
# 查看磁盘空
