背景介绍
在一般情况下,docker拉取镜像之后会创建一个容器,停止docker容器,数据不会丢失.
docker容器停止并退出,会处于终止(exited)状态,其中的数据不会丢失,可以通过docker ps -a查看;只有删除掉容器,数据才会随着容器的删除被清空。
但是,很多情况下我们需要把docker中与mysql相关的数据存储起来在不同的主机间进行备份传输,最好的方式是把数据和容器抽离出来分开处理。
docker下载
这里通过官方脚本直接下载
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
拉取镜像
docker pull mysql:5.7
创建相应的目录
cd ~
mkdir docker
cd docker
mkdir mysql
挂载数据卷启动容器
docker run -d -p 3306:3306 -v /docker/mysql/conf:/etc/mysql/conf.d -v /docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=Abc.12345 --name mysql5.7 mysql:5.7
查看宿主机相关目录
cd /docker/mysql/data
ls
正常情况下已经可以看到mysql相关的一些数据文件了。这样我们就实现了数据与容器的分离。