Ubuntu22.04.5 + Docker + MySQL 5.7

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

👉 ⚠️ 这个操作不可恢复!

相关推荐
KIDULT°1 小时前
Docker 从 0 入门|吃透容器生态、架构与 Dockerfile 实战
docker·容器·架构
黑色的白兔No12 小时前
deepin 25安装mysql
数据库·mysql·debian
putItInYourHand2 小时前
Docker Compose 部署 Mosquitto MQTT Broker 完整实战指南
运维·docker·容器
程序员清风2 小时前
Python 操作 MySQL、Redis 与消息队列的完整实践
redis·python·mysql
风哥2号4 小时前
数据库教程FGMT28‑Windows‑MySQL5.7‑8.0‑8.4-9.7安装配置
数据库·mysql
生活爱好者!11 小时前
哇!影视新玩法!docker部署NEOWATCH NAS
运维·docker·容器
toooooop812 小时前
MySQL source导入实战:踩坑记,phpMyAdmin 502、source导入巨慢问题解决
mysql
hasty14 小时前
Origin 校验不是身份认证:MySQL MCP Server 漏洞给 AI 平台的警告
数据库·mysql·安全
cpolar技术支持15 小时前
Docker 容器启动失败怎么查?端口、日志、权限与网络排障完整教程
linux·docker·容器·cpolar·网络排障
一技安身17 小时前
【大模型】Win11 部署 DeepSeek+ RAGFlow0.27.2 (Ollama方案,断网可用)
docker·ai·语言模型