在京东云上使用 Docker 安装 MySQL,可以分为以下几个步骤:
✅ 前提条件
- 已拥有京东云账号 并登录 京东云控制台。
- 已创建一台 云服务器(CVM),操作系统建议选择 CentOS、Ubuntu 等主流 Linux 发行版。
- 云服务器安全组已开放所需端口(如 MySQL 默认端口
3306)。 - SSH 工具连接到你的云服务器。
? 步骤一:安装 Docker
以 CentOS 为例:
# 1. 更新系统包
sudo yum update -y
# 2. 安装必要的依赖
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# 3. 添加 Docker 官方源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 4. 安装 Docker
sudo yum install -y docker-ce docker-ce-cli containerd.io
# 5. 启动并设置开机自启
sudo systemctl start docker
sudo systemctl enable docker
# 6. 验证安装
docker --version
Ubuntu 用户可参考官方文档或使用
apt安装。
? 步骤二:拉取并运行 MySQL 镜像
# 拉取 MySQL 8.0 镜像(推荐)
docker pull mysql:8.0
# 或者拉取 MySQL 5.7
# docker pull mysql:5.7
运行 MySQL 容器
docker run -d
--name mysql-container
-p 3306:3306
-e MYSQL_ROOT_PASSWORD=YourStrongPassword123
-v /mydata/mysql/data:/var/lib/mysql
-v /mydata/mysql/conf:/etc/mysql/conf.d
--restart=unless-stopped
mysql:8.0
参数说明:
| 参数 | 说明 |
|---|---|
-d |
后台运行容器 |
--name mysql-container |
容器名称 |
-p 3306:3306 |
映射宿主机 3306 端口到容器 |
-e MYSQL_ROOT_PASSWORD=... |
设置 root 用户密码(必填) |
-v /mydata/... |
数据和配置文件挂载,实现数据持久化 |
--restart=unless-stopped |
开机自启容器 |
⚠️ 注意:请将
YourStrongPassword123替换为强密码。
? 步骤三:配置 MySQL(可选)
如果需要自定义配置(如字符集、远程访问等),可在挂载的配置目录中创建 .cnf 文件:
# 创建配置目录
mkdir -p /mydata/mysql/conf
# 编辑配置文件
echo "
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
skip-name-resolve
" > /mydata/mysql/conf/mysql.cnf
然后重启容器:
docker restart mysql-container
? 步骤四:允许远程访问(重要)
默认情况下,MySQL 只允许本地连接。若需从外部连接:
-
确保京东云安全组放行 3306 端口:
- 登录京东云控制台 → 云服务器 → 安全组 → 添加规则:
- 协议:TCP
- 端口:3306
- 源 IP:0.0.0.0/0(或限制为特定 IP)
- 登录京东云控制台 → 云服务器 → 安全组 → 添加规则:
-
进入容器修改权限:
# 进入容器
docker exec -it mysql-container mysql -u root -p
# 输入密码后执行:
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'YourStrongPassword123';
FLUSH PRIVILEGES;
如果未开启
%访问,可能还需要创建用户并授权:CREATE USER 'admin'@'%' IDENTIFIED BY 'YourPassword'; GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%'; FLUSH PRIVILEGES;
✅ 测试连接
你可以使用以下方式测试:
- 使用 Navicat、DBeaver 等客户端工具远程连接。
- 使用命令行从另一台机器连接:
mysql -h <你的京东云公网IP> -P 3306 -u root -p
? 其他建议
- 定期备份数据:可通过
mysqldump或卷备份/mydata/mysql/data。 - 使用 Docker Compose 更方便管理(可选):
# docker-compose.yml
version: '3.8'
services:
mysql:
image: mysql:8.0
container_name: mysql-container
environment:
MYSQL_ROOT_PASSWORD: YourStrongPassword123
ports:
- "3306:3306"
volumes:
- /mydata/mysql/data:/var/lib/mysql
- /mydata/mysql/conf:/etc/mysql/conf.d
restart: unless-stopped
运行:
docker-compose up -d
❓常见问题
| 问题 | 解决方法 |
|---|---|
| 连接被拒 | 检查安全组、防火墙、MySQL 用户权限 |
| 容器启动失败 | 查看日志 docker logs mysql-container |
| 中文乱码 | 确保配置文件设置了 utf8mb4 |
✅ 总结:
你已在京东云 CVM 上通过 Docker 成功部署了 MySQL,并支持远程访问与数据持久化。
如有更多需求(如主从复制、SSL 配置等),可进一步扩展。
需要我帮你写一个完整的脚本一键部署吗?
CCLOUD博客