MySQL数据持久化
前言
再上一篇博客总结了Docker的容器数据卷感兴趣可以访问容器数据卷
实战MySQL数据持久化
前提Docker中已经下载了mysql的镜像,没有下载可以通过 docker pull mysql进行下载。
1.设置mysql密码
安装了mysql之后我们需要需要给mysql设置密码,最好我们是参考docker hub 官方的mysql安装使用介绍,对于mysql的使用很全面,适合全面的对mysql进行学习。
docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag #其中,some mysql是要分配给容器的名称,my secret pw是要为mysql root用户设置的密码,tag是指定所需mysql版本的标记. docker run --name mysql01 -e MYSQL_ROOT_PASSWORD=123456 -d mysql
2.连接mysql
启动了容器并设置了连接密码之后我们进行一下测试。我这儿使用的Navicat进行连接mysql。正常来说是没有问题的,我这儿也可以连接上。
3.挂载数据卷实现数据持久化
使用-v命令,在上一篇博客容器数据卷中已经讲过了。也可以在一条命令中多次使用-v命令进行多次挂载数据卷。
我们先将刚才的容器删除掉,docker rm -f mysql01
然后运行容器并进行挂载
docker run -d -p 3306:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql #在复习一下 -d后台启动,-p端口映射(服务器和容器)-v卷挂载 -e环境配置,--name容器名,conf主要是配置问卷,data是我们mysql的数据。
使用docker ps查看,可以看到容器创建成功。
在使用Navicat进行mysql连接。
- 测试mysql数据持久化
我们在mysql01中创建一个数据库
然后在容器中进行查看,首先通过docker exec -it 容器id /bin/bash进入到容器内容。在通过cd命令,切换到之前我们挂载的目录下可以看到在容器内部有名为test的数据库。
同样的我们在本地进行查看,进入到我们之前挂载到本地的路径下 cd home/mysql/data,可以看到test。同理我们将容器删除,在本地也能够找到test