1. 安装 Docker
确保已安装 Docker,并启动 Docker 服务。
-
Linux:
bash
复制
sudo apt update sudo apt install docker.io sudo systemctl start docker sudo systemctl enable docker
2. 拉取 MySQL 镜像
从 Docker Hub 拉取官方 MySQL 镜像。
bash
复制
docker pull mysql:latest
3. 启动 MySQL 容器
使用 docker run
命令启动 MySQL 容器。
基本命令
bash
复制
docker run -d \--name mysql-container \-e MYSQL_ROOT_PASSWORD=my-secret-pw \-p 3306:3306 \mysql:latest
参数说明
参数 | 说明 |
---|---|
-d | 后台运行容器(detached mode)。 |
--name mysql-container | 为容器指定名称(可自定义)。 |
-e MYSQL_ROOT_PASSWORD | 设置 MySQL 的 root 用户密码(必须设置)。 |
-p 3306:3306 | 将容器的 3306 端口映射到主机的 3306 端口(主机端口:容器端口)。 |
mysql:latest | 使用的镜像名称及版本(latest 表示最新版本)。 |
4. 连接到 MySQL
(1) 进入容器内部
bash
复制
docker exec -it mysql-container mysql -u root -p
输入密码(my-secret-pw
)后即可进入 MySQL 命令行。
(2) 使用外部客户端
通过主机 IP 和端口(localhost:3306
)连接 MySQL,使用工具如:
-
MySQL CLI:
bash
复制
mysql -h 127.0.0.1 -P 3306 -u root -p
-
图形化工具:如 MySQL Workbench、DBeaver 等。
5. 持久化数据
默认情况下,容器停止后数据会丢失。可以通过挂载卷(Volume)将数据持久化到主机。
挂载数据卷
bash
复制
docker run -d \--name mysql-container \-e MYSQL_ROOT_PASSWORD=my-secret-pw \-p 3306:3306 \-v /path/on/host:/var/lib/mysql \mysql:latest
-
/path/on/host
:主机上的目录路径(需提前创建)。 -
/var/lib/mysql
:容器内 MySQL 数据存储路径。
6. 自定义配置文件
如果需要使用自定义的 MySQL 配置文件(如 my.cnf
),可以挂载配置文件到容器。
挂载配置文件
bash
复制
docker run -d \--name mysql-container \-e MYSQL_ROOT_PASSWORD=my-secret-pw \-p 3306:3306 \-v /path/on/host/my.cnf:/etc/mysql/my.cnf \mysql:latest
7. 环境变量配置
MySQL 镜像支持通过环境变量配置数据库。
环境变量 | 说明 |
---|---|
MYSQL_ROOT_PASSWORD | root 用户密码(必须设置)。 |
MYSQL_DATABASE | 创建指定名称的数据库。 |
MYSQL_USER | 创建新用户。 |
MYSQL_PASSWORD | 为新用户设置密码。 |
示例
bash
复制
docker run -d \--name mysql-container \-e MYSQL_ROOT_PASSWORD=my-secret-pw \-e MYSQL_DATABASE=mydb \-e MYSQL_USER=myuser \-e MYSQL_PASSWORD=mypassword \-p 3306:3306 \mysql:latest
8. 常用管理命令
命令 | 说明 |
---|---|
docker ps | 查看运行中的容器。 |
docker stop mysql-container | 停止容器。 |
docker start mysql-container | 启动已停止的容器。 |
docker restart mysql-container | 重启容器。 |
docker logs mysql-container | 查看容器日志。 |
docker rm mysql-container | 删除容器(需先停止)。 |
docker rmi mysql:latest | 删除镜像。 |
9. 使用 Docker Compose 部署
对于复杂场景(如多容器应用),推荐使用 Docker Compose。
docker-compose.yml
示例
yaml
复制
version: '3.8' services:mysql:image: mysql:latestcontainer_name: mysql-containerenvironment:MYSQL_ROOT_PASSWORD: my-secret-pwMYSQL_DATABASE: mydbMYSQL_USER: myuserMYSQL_PASSWORD: mypasswordports:- "3306:3306"volumes:- /path/on/host:/var/lib/mysql
启动服务
bash
复制
docker-compose up -d
10. 总结
-
使用 Docker 部署 MySQL 简单高效,适合开发、测试和生产环境。
-
通过挂载卷和配置文件,可实现数据持久化和自定义配置。
-
对于复杂场景,推荐使用 Docker Compose 管理多容器应用。