Windows系统Docker Desktop拉取postgres镜像失败求助
错误原因分析
错误信息spawn C:\Program Files\dotnet\ ENOENT的核心问题是Docker尝试调用.NET可执行文件时,使用的路径末尾多了一个空格,导致系统无法找到对应的可执行文件(ENOENT = Error NO ENTity)。这种情况通常是Docker Desktop的配置项、环境变量同步或者第三方扩展的错误配置导致的。
解决办法
- 修正系统PATH中的.NET路径:打开系统环境变量设置,找到PATH里的
C:\Program Files\dotnet\(注意末尾的空格),删除多余空格改成C:\Program Files\dotnet,保存后重启Docker Desktop和所有终端窗口。 - 检查Docker Desktop扩展:打开Docker Desktop的扩展面板,禁用所有第三方扩展,然后重试拉取
postgres:latest镜像。部分扩展可能会篡改Docker的执行路径配置。 - 手动指定Docker的.NET执行路径:打开命令提示符,执行以下命令后再拉取镜像:
SET DOCKER_CLI_EXEC=C:\Program Files\dotnet\dotnet.exe docker pull postgres:latest - 切换容器模式:如果当前使用WSL2容器模式,暂时切换到Windows容器模式,重试拉取镜像;反之亦然。模式切换可以在Docker Desktop的右下角状态栏找到。
- 检查WSL2环境变量同步:若使用WSL2集成,打开WSL终端,执行
echo $PATH确认/mnt/c/Program Files/dotnet路径正确,没有多余空格;如果有问题,手动在WSL的~/.bashrc或~/.zshrc中添加正确路径。
内容的提问来源于stack exchange,提问作者Sridharan D
相关产品推荐
相关产品推荐

