Windows11下PowerShell无法连接Docker daemon问题排查求助
检查Docker Desktop运行状态
查看系统托盘右下角的Docker图标,确认无红色异常标记,且提示“Docker Desktop is running”;也可打开任务管理器,检查进程列表中是否有Docker Desktop相关进程。若未运行,启动Docker Desktop并等待完全加载后重试docker build命令。确认WSL集成配置
打开Docker Desktop设置,进入Resources→WSL Integration,确保你使用的Alpine WSL发行版对应的集成开关处于开启状态,点击Apply & Restart保存并重启Docker。
重启后在PowerShell执行wsl -l -v,确认Alpine发行版状态为Running。校验Docker环境变量
在PowerShell中执行echo $Env:DOCKER_HOST,正常情况下Windows环境应输出npipe:////./pipe/docker_engine。若输出为unix:///var/run/docker.sock,说明环境变量被错误覆盖:- 临时修复:执行
$Env:DOCKER_HOST = "npipe:////./pipe/docker_engine",之后重试命令。 - 永久修复:打开系统环境变量设置,修改
DOCKER_HOST为上述正确值,重启PowerShell生效。
- 临时修复:执行
验证CLI与Daemon连通性
执行docker info,若能输出完整的Docker系统信息,说明连接正常;若仍报错,执行docker version,查看Client和Server部分的输出情况,Server端报错则说明Daemon连通存在问题。重置Docker Desktop
打开Docker Desktop设置,进入Troubleshoot,点击Reset to factory defaults,重置完成后重新启动Docker Desktop,再尝试构建命令。检查WSL2运行状态
执行wsl --shutdown关闭所有WSL实例,再执行wsl -d Alpine重新启动目标发行版,确认能正常进入WSL环境。若WSL存在异常,执行wsl --update更新WSL组件,重启电脑后重试。
内容的提问来源于stack exchange,提问作者Pranjal

