You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WSL 2创建容器挂载/var/run/docker.sock报错not a directory怎么办

故障解决方法

核心根因

该报错是WSL2环境下Docker套接字路径映射异常导致,核心诱因有三种:

  • 挂载命令的路径末尾误加斜杠,被Docker识别为目录挂载请求
  • Docker Desktop生成的/var/run/docker.sock是软链接,挂载时无法被Docker daemon正确识别为套接字文件
  • WSL2与Docker Desktop的集成配置失效,套接字的挂载上下文异常

解决方案

  • 修正挂载命令格式:删除源路径、目标路径末尾的多余斜杠,正确的参数写法为
    -v /var/run/docker.sock:/var/run/docker.sock
    
    不要写成-v /var/run/docker.sock:/var/run/docker.sock/,末尾斜杠会触发目录挂载校验报错
  • 替换为套接字真实路径挂载:执行命令readlink -f /var/run/docker.sock获取软链接指向的真实套接字路径,用真实路径替换源路径参数即可,示例:
    1. 执行查询返回真实路径:/mnt/wsl/docker-desktop/shared-sockets/guest-services/docker.sock
    2. 修改挂载参数为:-v /mnt/wsl/docker-desktop/shared-sockets/guest-services/docker.sock:/var/run/docker.sock
  • 重置WSL集成配置(Docker Desktop用户适用):打开Docker Desktop设置界面,进入「Resources」→「WSL Integration」,关闭当前使用的WSL发行版集成开关,点击Apply & Restart重启Docker Desktop,重启后重新开启对应发行版的集成开关,等待配置同步完成后再执行容器创建命令
  • 重启Docker服务(原生WSL2 Docker用户适用):未安装Docker Desktop、直接在WSL2内安装Docker的用户,执行sudo systemctl restart docker重启Docker服务,修复套接字挂载上下文异常

验证方案

容器启动成功后,进入容器内部执行docker ps命令,输出结果和WSL2宿主端执行docker ps的结果完全一致,即为修复成功。

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 23:48:02