一、Docker 安装 MySQL 5.7 & MySQL 8.0
1、启动docker
sudo systemctl start docker
2、拉取镜像
拉取 MySQL 5.7 镜像:
docker pull mysql:5.7
拉取 MySQL 8.0 镜像:
docker pull mysql:8.0
3、创建一个容器并运行 MySQL
创建一个容器并运行 MySQL 5.7:
docker run -d --name mysql57 -e MYSQL_ROOT_PASSWORD=<root_password> -p 3306:3306 mysql:5.7
注意将 <root_password> 替换为你自己设置的 MySQL root 用户的密码。
创建一个容器并运行 MySQL 8.0:
docker run -d --name mysql80 -e MYSQL_ROOT_PASSWORD=<root_password> -p 3306:3306 mysql:8.0
注意将 <root_password> 替换为你自己设置的 MySQL root 用户的密码。
4、验证容器是否正常运行:
docker ps
确保 mysql57/mysql80容器正在运行,并且端口映射为本地的 3306 端口。
现在,你应该成功地在 CentOS 上使用 Docker 安装和运行了 MySQL 5.7/8.0。你可以使用任何支持的 MySQL 客户端连接到主机的 3306 端口,使用设置的 root 密码访问数据库。
5、数据持久化
在 Docker 中实现 MySQL 数据持久化可以通过将容器内的 MySQL 数据目录与宿主机的目录进行挂载来实现。以下是实现数据持久化的步骤:
创建一个目录,用于宿主机上的数据存储。例如,我们创建一个名为 /var/mysql-data 的目录:
sudo mkdir -p /var/mysql-data
授予容器访问该目录的权限:
sudo chmod 777 /var/mysql-data
在运行 MySQL 容器时,使用 -v 参数将宿主机的目录和容器内的 MySQL 数据目录进行挂载。命令如下:
mysql 5.7
docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=<root_password> -p 3306:3306 -v /var/mysql-data:/var/lib/mysql mysql:5.7
- /var/mysql-data 替换为你自己的宿主机上的目录路径,
- <root_password> 替换为你设置的 MySQL root 用户密码。
mysql 8.0
docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=<root_password> -p 3306:3306 -v /var/mysql-data:/var/lib/mysql mysql:8.0
- /var/mysql-data 替换为你自己的宿主机上的目录路径,
- <root_password> 替换为你设置的 MySQL root 用户密码。
举例:
[root@hecs-357186 ~]# docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -v /var/mysql-data:/var/lib/mysql mysql:5.7
8d5c6fe4be000c3402c2b0541b4fbbf6536f22b9558c42848783af48e9a30b5d
这样,容器内的 MySQL 数据目录 /var/lib/mysql 将会与宿主机上的 /my/mysql-data 目录进行挂载,实现了数据的持久化存储。
此后,无论如何启动、停止和重新创建容器,MySQL 数据都会被保存在宿主机的指定目录中。这使得即使容器被删除,数据也不会丢失。