云服务器MySQL 8.0 Docker容器化部署全流程
文章分类:售后支持 /
创建时间:2025-08-12
在云服务器上用Docker容器化部署MySQL 8.0,能提升配置效率与灵活性。这种部署方式通过容器隔离环境,既避免了传统安装的依赖冲突问题,又能快速复制迁移,特别适合需要快速搭建数据库的开发者或小型团队。下面详细拆解从环境准备到服务验证的全流程。
前期准备:确认环境与工具
部署前需确保云服务器已安装Docker(一种容器化平台,能将应用及其依赖打包成轻量级容器)和Docker Compose(用于定义和运行多容器应用的工具)。可通过命令检查是否安装成功:
docker --version # 查看Docker版本
docker-compose --version # 查看Docker Compose版本
若未安装,按以下步骤操作:
安装Docker(自动下载官方安装脚本并执行)
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
安装Docker Compose(下载指定版本并赋予执行权限)
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
⚠️ 小提示:若执行命令时提示权限不足,需在命令前加`sudo`(Linux系统管理员权限)。
拉取镜像:获取MySQL 8.0基础环境
Docker镜像是容器的“模板”,拉取MySQL 8.0官方镜像作为基础环境。执行命令:
docker pull mysql:8.0 # 从Docker Hub拉取MySQL 8.0镜像
拉取完成后,用`docker images`命令可查看已下载的镜像列表,确认`mysql:8.0`存在即成功。
数据持久化:创建存储目录
容器删除后数据会丢失,因此需在云服务器本地创建目录,将MySQL数据挂载到本地实现持久化。例如创建`/data/mysql`目录:
mkdir -p /data/mysql # -p参数表示若目录不存在则自动创建
配置环境变量:管理数据库参数
为避免直接在Docker Compose文件中写密码等敏感信息,可创建`.env`文件存储环境变量。执行:
touch .env # 创建.env文件
用文本编辑器(如`vim`或`nano`)打开`.env`,添加以下内容(需替换为自己的参数):
MYSQL_ROOT_PASSWORD=your_root_pass # root用户密码(建议复杂度高)
MYSQL_DATABASE=my_db # 要创建的数据库名
MYSQL_USER=my_user # 普通用户账号
MYSQL_PASSWORD=user_pass # 普通用户密码
定义服务:编写Docker Compose文件
创建`docker-compose.yml`文件定义MySQL服务的运行规则,执行:
touch docker-compose.yml
文件内容如下(通过`${变量名}`引用`.env`中的参数):
version: '3'
services:
mysql:
image: mysql:8.0 # 使用的镜像
container_name: mysql-8.0 # 容器名称(自定义)
restart: always # 容器意外停止时自动重启
environment: # 环境变量(从.env读取)
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
- MYSQL_DATABASE=${MYSQL_DATABASE}
- MYSQL_USER=${MYSQL_USER}
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
volumes: # 数据挂载(本地目录:容器内目录)
- /data/mysql:/var/lib/mysql
ports: # 端口映射(本地端口:容器端口)
- "3306:3306"
启动与验证:确认服务运行
在`docker-compose.yml`所在目录执行命令启动服务:
docker-compose up -d # -d表示后台运行
用`docker ps`查看运行中的容器,若看到`mysql-8.0`状态为`Up`,说明启动成功。
验证服务是否可用,执行MySQL客户端连接命令:
mysql -h 127.0.0.1 -P 3306 -u root -p # 输入root密码后登录
若成功进入MySQL命令行(显示`mysql>`提示符),则部署完成。
后续管理:停止与更新
- 停止服务:在`docker-compose.yml`目录执行`docker-compose down`。
- 更新镜像:先停止服务(`docker-compose down`),拉取最新镜像(`docker pull mysql:8.0`),再重新启动(`docker-compose up -d`)。
通过这套流程,即使是新手也能在云服务器上快速搭建高可用的MySQL 8.0环境,享受容器化带来的便捷与灵活。