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文件夹下