Docker 运行mysql镜像,mysql数据库中的数据都是存在运行mysql数据库的容器当中,如果容器被删除或者是主机关机,那么mysql数据库数据就会丢失。
我们可以使用挂载的方式,来实现数据的持久化。
下面分别创建两个运行mysql的容器,一个使用挂载,另外一个不适用挂载,看看结果如何。
###使用挂载
docker run -d -p 3306:3306 \
#命名容器名
--name dream_mysql \
#设置ROOT用户密码
-e MYSQL_ROOT_PASSWORD=123 \
#挂载目录
-v /mysql/config/my.conf:/etc/my.cof \
-v /mysql/data:/var/lib/mysql \
#镜像名
mysql:5.7
#不使用挂载
docker run -p 3307:3306 --name fmysql -e MYSQL_ROOT_PASSWORD=123 -d mysql:5.7

分别对两个容器的mysql数据库插入一些数据

删除这两个mysql的容器,并重新执行上面的两条命令。
发现挂载本地文件的3306端口容器,还是有数据 ,而没有挂载的3307端口容器就丢失了数据

然后,我们来到宿主机挂载的目录中,可见数据存在/mysql文件夹下


本文通过实例演示了Docker运行MySQL时,数据丢失的问题以及如何通过挂载来实现数据的持久化。对比了挂载和未挂载的容器在删除后数据的不同状态,挂载容器能保持数据,而未挂载容器则数据丢失。同时,展示了挂载的数据存储在宿主机的相应目录。
7519

被折叠的 条评论
为什么被折叠?



