Windows10(WSL2)下Docker Volume参数未将MySQL数据存入预期目录
问题原因与解决办法
为什么找不到opt/data?
你指定的-v /opt/data:/var/lib/mysql里的/opt/data是WSL2发行版(比如Ubuntu)内部的Linux文件系统路径,并非Windows系统里的docker-desktop-data目录路径。Docker Desktop在WSL2模式下,会直接使用WSL的Linux路径做挂载,不会把数据转存到Windows的docker-desktop-data目录中,所以你在后者里自然找不到。
验证挂载是否真的生效
- 打开WSL2的终端(比如Ubuntu),直接查看WSL内部的
/opt/data目录,就能看到MySQL的数据文件:ls -la /opt/data - 或者进入MySQL容器内部检查数据目录:
docker exec -it mysql1 bash ls -la /var/lib/mysql
如果能看到对应的数据库表文件,说明挂载完全生效,只是你找错了位置。
若想把数据存到Windows本地路径
如果希望将MySQL数据存到Windows的某个文件夹(比如D:\mysql-data),只需把挂载路径改成Windows的绝对路径(注意用斜杠/分隔):
docker run -p 3306:3306 -v D:/mysql-data:/var/lib/mysql -e MYSQL_ALLOW_EMPTY_PASSWORD=true --name=mysql1 mysql
这样就能在Windows的D:\mysql-data目录下看到MySQL的数据文件了。
内容的提问来源于stack exchange,提问作者RaelB
相关产品推荐
相关产品推荐

