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
命令行工具)连接到容器。
- 进入容器:
docker exec -it my-mysql mysql -u root -p
- 输入密码(
123456
)。 - 执行 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 配置文件,可以将配置文件挂载到容器中。
- 在宿主机上创建配置文件,例如
my.cnf
。 - 运行容器并挂载配置文件:
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 容器。 - 通过挂载数据卷和配置文件,可以实现数据持久化和自定义配置。
- 通过环境变量可以方便地配置数据库、用户和密码。