docker安装mysql及数据持久化

一、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 数据都会被保存在宿主机的指定目录中。这使得即使容器被删除,数据也不会丢失。

猜你喜欢

转载自blog.csdn.net/qq_39208536/article/details/131640364