Ubuntu22.04.5 + Docker + MySQL 5.7 安装完整流程
适用于:Ubuntu 服务器(国内环境优化版)
一、安装 Docker
🟢 1. 更新系统
sudo apt update
🟢 2. 安装依赖
sudo apt install -y ca-certificates curl gnupg lsb-release

🟢 3. 安装 Docker(推荐官方脚本)
curl -fsSL https://get.docker.com | bash

👉 说明:
- 自动安装 Docker
- 自动配置环境(比手动稳定)
🟢 4. 启动 Docker
sudo systemctl start docker
sudo systemctl enable docker

🟢 5. 验证安装
docker -v

👉 看到版本号说明成功
二、准备 MySQL 数据目录
sudo mkdir -p /data/mysql
sudo chmod -R 777 /data/mysql
👉 用于数据持久化(非常重要)
三、获取 MySQL 5.7 镜像(国内方案)
👉 由于 Docker Hub 网络问题,使用国内镜像:
docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/mysql:5.7

🟢 转换为标准镜像名
docker tag swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/mysql:5.7 mysql:5.7

四、启动 MySQL 容器
docker run -d \
--name mysql57 \
-p 3306:3306 \
-v /data/mysql:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=AAaa@123 \
--restart=always \
mysql:5.7
五、验证 MySQL 是否成功
🟢 1. 查看容器
docker ps
🟢 2. 查看日志
docker logs -f mysql57
👉 出现:
ready for connections
🟢 3. 登录测试
mysql -h 127.0.0.1 -P 3306 -u root -p
六、开启远程访问(可选但推荐)
进入容器:
docker exec -it mysql57 mysql -uroot -p
执行:
ALTER USER 'root'@'%' IDENTIFIED BY 'AAaa@123';
FLUSH PRIVILEGES;
七、数据说明(很重要)
/data/mysql ← 数据真实存储位置
👉 优点:
- 容器删除 → 数据不丢
- 可备份 / 可迁移
八、常见问题总结
❗1. docker pull 失败
👉 原因:国内网络限制
👉 解决:使用华为云镜像(上面已处理)
❗2. 端口占用
3306 被占用
👉 解决:
-p 13306:3306
❗3. 无法远程连接
👉 检查:
- 防火墙
- MySQL权限
九、最终结构
服务器
├── Docker
│ └── mysql57(容器)
│
└── /data/mysql(数据库文件)
一句话总结
👉 在 Ubuntu 上:
Docker = 运行环境
MySQL容器 = 数据库服务
/data/mysql = 数据存储
👉 这是标准生产部署方式
👉使用navicat也可以远程连接 
删除docker的操作步骤
1、先确认一个关键问题(非常重要)
👉 你当时启动 MySQL 有没有加这个参数:-v /data/mysql:/var/lib/mysql
情况分两种:
🟢 情况1:有挂载(推荐)
✔ 数据在 /data/mysql
👉 删除容器 ≠ 删除数据(安全)
🔴 情况2:没挂载
❌ 数据在容器里
👉 删除容器 = 数据全没
👉 不确定的话可以先执行:
docker inspect mysql57
看有没有:
/data/mysql

2、删除 MySQL 容器(标准步骤)
🟢 1. 停止容器
docker stop mysql57
🟢 2. 删除容器
docker rm mysql57
💾 2、是否删除数据(你自己决定)
✔ 保留数据(推荐)
👉 什么都不用做
👉 /data/mysql 还在,之前保存的数据没有删除
❗彻底删除(重新来一套干净的)
rm -rf /data/mysql
👉 ⚠️ 这个操作不可恢复!