前提条件

确保你的电脑已经安装了 Docker 或 Docker Desktop。可以通过在终端 / 命令行执行以下命令验证:

docker --version

拉取 MySQL 镜像

首先从 Docker Hub 拉取官方的 MySQL 镜像(推荐指定具体版本,比如 8.0,避免默认最新版可能的兼容性问题):

docker pull mysql:8.0

启动 MySQL 容器

这是核心步骤,推荐使用以下命令启动(包含常用配置,避免容器重启后数据丢失):

docker run -d --name mysql8 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_CHARACTER_SET_SERVER=utf8mb4 -e MYSQL_COLLATION_SERVER=utf8mb4_unicode_ci -v mysql-data:/var/lib/mysql --restart=always mysql:8.0

说明:

# 启动 MySQL 容器(复制直接执行即可)
docker run -d \
--name mysql8 \ # 容器名称,自定义(比如 mysql8)
-p 3306:3306 \ # 端口映射:主机 3306 端口 -> 容器 3306 端口
-e MYSQL_ROOT_PASSWORD=123456 \ # 设置 root 密码(务必修改成自己的)
-e MYSQL_CHARACTER_SET_SERVER=utf8mb4 \ # 设置默认字符集
-e MYSQL_COLLATION_SERVER=utf8mb4_unicode_ci \
-v mysql-data:/var/lib/mysql \ # 数据卷挂载:持久化 MySQL 数据
--restart=always \ # 容器重启策略:开机自启/异常重启
mysql:8.0 # 使用的镜像版本
  • -d:后台运行容器;
  • –name:给容器命名,方便后续管理(比如停止 / 重启);
  • -p 3306:3306:把主机的 3306 端口映射到容器内的 3306 端口,这样你本地可以通过 localhost:3306 访问;
  • -e:设置环境变量,核心是 MYSQL_ROOT_PASSWORD(必须设置,否则容器启动失败);
  • -v mysql-data:/var/lib/mysql:将容器内的 MySQL 数据目录挂载到 Docker 数据卷,即使删除容器,数据也不会丢失;
  • –restart=always:确保 Docker 重启后,MySQL 容器自动启动。

验证容器是否启动成功

# 查看运行中的容器
docker ps

# 如果看到名称为 mysql8、状态为 Up 的容器,说明启动成功

连接 MySQL 容器


快捷指令

# 停止 MySQL 容器
docker stop mysql8

# 启动已停止的 MySQL 容器
docker start mysql8

# 重启 MySQL 容器
docker restart mysql8

# 查看容器日志(排查启动失败问题)
docker logs mysql8

# 删除 MySQL 容器(删除前需先停止)
docker rm mysql8

# 删除 MySQL 数据卷(谨慎操作,会丢失所有数据)
docker volume rm mysql-data