基于docker运行MySQL8服务

docker运行mysql8

在 Docker 中运行 MySQL 8 非常简单。MySQL 是一个流行的开源关系型数据库管理系统。以下是使用 Docker 运行 MySQL 8 的详细步骤:

1. 拉取 MySQL 8 镜像

首先,从 Docker Hub 拉取 MySQL 8 官方镜像。

docker pull mysql:8.0
  • 默认情况下,会拉取 MySQL 8 的最新版本(mysql:8.0)。
  • 如果需要特定的小版本,可以指定标签,例如:
docker pull mysql:8.0.33
2. 运行 MySQL 8 容器

使用 docker run 命令启动 MySQL 8 容器。

基本命令:
docker run -d --name my-mysql \
  -e MYSQL_ROOT_PASSWORD=123456 \
  -p 3306:3306 \
  mysql:8.0
  • -d:以后台模式(detached)运行容器。
  • --name my-mysql:为容器指定一个名称(my-mysql)。
  • -e MYSQL_ROOT_PASSWORD=123456:设置 MySQL 的 root 用户密码(环境变量)。
  • -p 3306:3306:将宿主机的 3306 端口映射到容器的 3306 端口(MySQL 默认端口)。
  • mysql:8.0:使用的镜像名称和标签。
3. 验证 MySQL 是否运行
查看容器状态:
docker ps

输出示例:

CONTAINER ID   IMAGE       COMMAND                  CREATED         STATUS         PORTS                               NAMES
abc123def456   mysql:8.0   "docker-entrypoint.s…"   10 seconds ago  Up 9 seconds   0.0.0.0:3306->3306/tcp, 33060/tcp   my-mysql
连接到 MySQL 容器:

可以使用 MySQL 客户端(如 mysql 命令行工具)连接到容器。

  1. 进入容器:
docker exec -it my-mysql mysql -u root -p
  1. 输入密码(123456)。
  2. 执行 MySQL 命令:
show databases;
4. 持久化数据

默认情况下,MySQL 数据存储在容器内部,容器停止后数据会丢失。如果需要持久化数据,可以将 MySQL 的数据目录挂载到宿主机。

挂载数据卷:
docker run -d --name my-mysql \
  -e MYSQL_ROOT_PASSWORD=123456 \
  -p 3306:3306 \
  -v /home/docker/mysql:/var/lib/mysql \
  mysql:8.0
  • -v /home/docker/mysql:/var/lib/mysql:将宿主机的 /home/docker/mysql 目录挂载到容器内的 /var/lib/mysql 目录(MySQL 默认数据存储位置)。
5. 使用自定义配置文件

如果需要使用自定义的 MySQL 配置文件,可以将配置文件挂载到容器中。

  1. 在宿主机上创建配置文件,例如 my.cnf
  2. 运行容器并挂载配置文件:
docker run -d --name my-mysql \
  -e MYSQL_ROOT_PASSWORD=123456 \
  -p 3306:3306 \
  -v /home/docker/mysql/my.cnf:/etc/mysql/my.cnf \
  mysql:8.0
6. 设置环境变量

MySQL 8 支持通过环境变量配置数据库。

常用环境变量:
  • MYSQL_ROOT_PASSWORD:设置 root 用户密码。
  • MYSQL_DATABASE:创建一个新数据库。
  • MYSQL_USER:创建一个新用户。
  • MYSQL_PASSWORD:设置新用户的密码。

示例:

docker run -d --name my-mysql \
  -e MYSQL_ROOT_PASSWORD=123456 \
  -e MYSQL_DATABASE=my-db \
  -e MYSQL_USER=my-user \
  -e MYSQL_PASSWORD=my-password \
  -p 3306:3306 \
  mysql:8.0
7. 停止和删除容器
停止容器:
docker stop my-mysql
删除容器:
docker rm my-mysql
删除容器并删除数据卷:
docker rm -v my-mysql
8. 总结
  • 使用 docker run 命令可以快速启动 MySQL 8 容器。
  • 通过挂载数据卷和配置文件,可以实现数据持久化和自定义配置。
  • 通过环境变量可以方便地配置数据库、用户和密码。