目录

如何用Docker部署Mysql

如何用Docker部署Mysql

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_PASSWORDroot 用户密码(必须设置)。
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:latest
    container_name: mysql-container
    environment:
      MYSQL_ROOT_PASSWORD: my-secret-pw
      MYSQL_DATABASE: mydb
      MYSQL_USER: myuser
      MYSQL_PASSWORD: mypassword
    ports:
      - "3306:3306"
    volumes:
      - /path/on/host:/var/lib/mysql
启动服务

bash

复制

docker-compose up -d

10. 总结

  • 使用 Docker 部署 MySQL 简单高效,适合开发、测试和生产环境。
  • 通过挂载卷和配置文件,可实现数据持久化和自定义配置。
  • 对于复杂场景,推荐使用 Docker Compose 管理多容器应用。