You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

WSL环境中Docker挂载卷内容无法查看的技术求助

解决WSL环境中Docker卷路径无法访问的问题

这个问题我之前在WSL+Docker Desktop的环境里也碰到过,核心原因是当你启用Docker Desktop的WSL集成时,Docker daemon其实是运行在一个专门的WSL发行版(docker-desktop-data)中,而不是你当前正在使用的那个WSL发行版(比如Ubuntu)。你当前WSL里的/var/lib/docker只是一个空的占位目录,自然找不到对应的卷内容。

下面给你几个可行的解决办法:

方法1:直接进入Docker专用的WSL发行版查看

  1. 打开你的WSL终端或者PowerShell,执行以下命令切换到Docker的专用发行版:
    wsl -d docker-desktop-data
    
  2. 进入之后,再执行你原来的命令就能正常访问卷内容了:
    ls -la /var/lib/docker/volumes/crv/_data
    

方法2:在当前WSL发行版中挂载Docker数据目录

如果你想在自己常用的WSL发行版里直接访问Docker卷,可以手动挂载docker-desktop-data的目录:

  1. 先创建挂载目录:
    sudo mkdir -p /mnt/docker-data
    
  2. 执行挂载命令:
    sudo mount -t drvfs '\\wsl$\docker-desktop-data\var\lib\docker' /mnt/docker-data
    
  3. 之后你就可以通过/mnt/docker-data/volumes路径访问所有Docker卷的内容了,比如:
    ls -la /mnt/docker-data/volumes/crv/_data
    
  4. 如果希望每次启动WSL都自动挂载,可以编辑/etc/fstab文件,添加以下一行内容:
    \\wsl$\docker-desktop-data\var\lib\docker /mnt/docker-data drvfs defaults 0 0
    

额外说明

如果你是直接在WSL2中独立安装的Docker(没有使用Docker Desktop),那可能是Docker服务未正确启动或者卷未创建成功,可以先执行systemctl start docker启动服务,再用docker volume inspect crv确认卷的实际路径。

内容的提问来源于stack exchange,提问作者geoB

火山引擎 最新活动