如何从Linux WSL2环境中访问Docker的存储数据
问题原因
这是Docker Desktop for WSL2的特殊挂载机制导致的,docker-desktop-data分发版的内部文件系统默认没有完整映射到WSL跨分发版挂载路径/mnt/wsl/docker-desktop-data/下,因此你只能在Windows侧通过网络路径看到完整内容,WSL侧默认挂载的是裁剪后的目录。
解决方法
方法1:直接进入docker-desktop-data分发版操作
如果仅需要读取/修改目录内文件,直接执行命令进入该分发版的shell即可查看完整目录:
wsl -d docker-desktop-data
进入后直接访问/version-pack-data/community/docker即可,所有内容和Windows侧看到的完全一致。
方法2:手动绑定挂载到自定义WSL分发版
如果你需要在自己常用的WSL分发版(比如Ubuntu、Debian)里直接访问该目录,可以手动做绑定挂载:
- 先在你的WSL分发版里创建挂载目录,比如:
mkdir -p ~/docker-data
- 执行挂载命令:
mount --bind /mnt/wsl/docker-desktop-data/isocache/run/desktop/mnt/host/wsl/docker-desktop-data/version-pack-data/community/docker ~/docker-data
挂载完成后访问~/docker-data就能看到所有Docker数据文件。
如果需要开机自动挂载,可以把上述挂载命令加到/etc/fstab里,或者加到用户的~/.bashrc/~/.zshrc文件末尾。
注意事项
- 不要随意修改这些数据文件,可能会导致Docker运行异常、容器/镜像损坏
- 上述路径仅适配你当前使用的Docker Desktop 4.0.0版本,升级Docker Desktop后路径可能发生变化
内容的提问来源于stack exchange,提问作者Menas
相关产品推荐
相关产品推荐

