H5W3
当前位置:H5W3 > docker > 正文

【Docker】docker挂载mysql卷重启容器后消失

docker run -d -v ./data:/var/lib/mysql -p 3306:3306 --name yang-mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7

我想挂载个data卷存数据
为什么挂载卷重启容器后就没了。。。也不报错。
我将data目录换个地方,再run就又可以挂载上了。
再重启容器就又空了。

回答

首先,通过上面的那条命令启动后,当前目录会生成一个data的目录,会发现这个目录是空的,使用docker inspect yang-mysql获取容器的Mounts信息,查看Source的路径/var/lib/docker/volumes/data/_data下面,其实你的数据是存到了docker默认的存储目录,当你容器被删除的时候,这个目录以及里面的数据会跟随着删除,相对路径也就是指的/var/lib/docker/volumes/,与宿主机的当前目录无关。
所以想要实现当前目录挂载到容器内,需要将宿主机的路径写成绝对路径,也就是这样:
docker run -d -v $(pwd)/data:/var/lib/mysql -p 3306:3306 --name yang-mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
就可以实现数据的持久化

本文地址:H5W3 » 【Docker】docker挂载mysql卷重启容器后消失

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址