win11平台下的docker-desktop中的volume位置问题
因为需要搞个本地的mysql数据库,而且本地安装的程序较多,不想再安mysql了,就想到使用docker来安装。而且因为数据巨大,所以想到直接使用转移data文件夹的方式。
各种查询,而且还使用ai查询,他们都提到,所有的镜像和volume都存在docker-desktop-data里。而现在docker官网下载的是docker28,据说(未考证)从docker4开始,就不再有docker-desktop-data这个了。可以本机执行:
# 查看wsl有哪些发行版
wsl --list -a
会发现只有ubuntu和docker-desktop。
好了,到主要内容部分了。
# 创建一个volume
docker volume create mysql_data# 查看这个volume在哪
docker volume inspect mysql_data
执行了inspect后,会有一个Mountpoint:"/var/lib/docker/volumes/mysql_data/_data"。
咦,这个路径在哪?
想到volume的本质是一个数据卷,所以它应该是在wsl中的docker-desktop里,但是那里根本没有这个目录。
后来经研究,发现它实际上是在:
/mnt/docker-desktop-disk/data/docker/volumes/
目录下,汗。
接下来就好办了,将data文件夹复制到这个目录下,就可以docker run了。
不过还要注意一点,如果库里之前有lower-case-table-names=1的设置,则需要在run的时候设置:
docker run -d \--name mysql \-v mysql_data:/var/lib/mysql \-e MYSQL_ROOT_PASSWORD=mysql \-p 3306:3306 \mysql:8.0--lower-case-table-name=1
这样就ok了。