WSL2 Ubuntu环境下VSCode创建Dev Container提示docker未找到求助
排查与解决WSL2中Dev Containers无法创建新容器的问题
核心问题分析
当前问题是VSCode的Dev Containers扩展错误地在Windows系统PATH中查找Docker可执行文件,而非使用WSL2 Ubuntu内的Docker服务。旧容器能正常运行说明WSL内的Docker daemon本身是正常的,问题出在扩展的配置或远程会话的上下文指向。
具体排查与修复步骤
1. 修正Docker上下文指向
- 打开VSCode命令面板(
Ctrl+Shift+P),执行Dev Containers: Configure Docker Context for Containers - 选择
WSL: Ubuntu作为默认Docker上下文,强制扩展使用WSL内的Docker服务
2. 确认WSL内Docker服务状态
在WSL终端执行以下命令:
# 检查Docker daemon运行状态 sudo systemctl status docker # 若未运行则启动服务 sudo systemctl start docker # 设置开机自启避免后续问题 sudo systemctl enable docker
3. 指定WSL内Docker可执行路径
- 在WSL终端执行
which docker,获取路径(通常为/usr/bin/docker) - 打开VSCode设置(
Ctrl+,),搜索dev.containers.dockerPath,将值设置为wsl://Ubuntu/usr/bin/docker(替换为你的实际路径和发行版名称)
4. 验证VSCode远程会话状态
- 确认VSCode左下角状态栏显示当前连接为
WSL: Ubuntu,若不是则重新通过WSL终端执行code .打开项目 - 禁用并重新启用Dev Containers和WSL扩展,重启VSCode后重试创建容器
5. 排查WSL环境变量配置
- 查看WSL的
/etc/wsl.conf文件,确认是否存在错误配置:
若有cat /etc/wsl.confinterop.appendWindowsPath=true,可暂时改为false测试,确保WSL本地PATH优先级高于Windows - 在WSL终端执行
echo $PATH,确认/usr/bin在Windows路径之前
6. 回退扩展版本(若更新后出现问题)
若问题是在Dev Containers扩展更新到0.275.1/0.279.0后出现,可尝试回退版本:
- 打开VSCode扩展面板,找到Dev Containers扩展,点击齿轮图标选择
Install Another Version,选择之前能正常工作的版本 - 重启VSCode后测试创建容器
内容的提问来源于stack exchange,提问作者qootec
相关产品推荐
相关产品推荐

