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

.NET Framework 4.7.2应用部署Docker容器失败求助

.NET Framework 4.7.2 Docker部署报错:docker_engine_windows管道找不到

问题现象

部署.NET Framework 4.7.2应用到Docker容器时,执行docker-compose和docker version命令均返回以下错误:

Error response from daemon: open \\.\pipe\docker_engine_windows: The system cannot find the file specified.

切换Linux/Windows容器模式无效,但.NET Core应用搭配Linux容器可正常部署。

错误详情

docker-compose执行错误

2>docker-compose  -f "C:\KalaiSelvi\Docker_API\WebApplicationFramework\docker-compose.yml" -f "C:\KalaiSelvi\Docker_API\WebApplicationFramework\docker-compose.override.yml" -f "C:\KalaiSelvi\Docker_API\WebApplicationFramework\obj\Docker\docker-compose.vs.debug.g.yml" -p dockercompose17334395961885382638 --ansi never up -d --build --force-recreate --remove-orphans

2>Error response from daemon: open \\.\pipe\docker_engine_windows: The system cannot find the file specified.

MSBuild堆栈跟踪

2>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets(407,5): error MSB4018: The "PrepareForLaunch" task failed unexpectedly.
2>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets(407,5): error MSB4018: Microsoft.VisualStudio.Containers.Tools.Common.ContainerToolsException: Error response from daemon: open \\.\pipe\docker_engine_windows: The system cannot find the file specified.
2>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets(407,5): error MSB4018:    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
2>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets(407,5): error MSB4018:    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
2>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets(407,5): error MSB4018:    at Microsoft.Docker.DockerClient.<ExecuteAsync>d__0.MoveNext()
2>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets(407,5): error MSB4018: --- End of stack trace from previous location where exception was thrown ---
2>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets(407,5): error MSB4018:    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
2>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets(407,5): error MSB4018:    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
2>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets(407,5): error MSB4018:    at Microsoft.Docker.DockerClientExtensions.<GetServerOperatingSystemAsync>d__8.MoveNext()
2>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets(407,5): error MSB4018: --- End of stack trace from previous location where exception was thrown ---
2>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets(407,5): error MSB4018:    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
2>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets(407,5): error MSB4018:    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
2>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets(407,5): error MSB4018:    at Microsoft.Docker.Prerequisites.DockerTargetOSCheckPrerequisite.<EvaluateAsync>d__4.MoveNext()
2>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets(407,5): error MSB4018: --- End of stack trace from previous location where exception was thrown ---
2>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets(407,5): error MSB4018:    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
2>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets(407,5): error MSB4018:    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
2>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets(407,5): error MSB4018:    at Microsoft.Docker.Prerequisites.DockerCompositePrerequisite.<EvaluateAsync>d__3.MoveNext()
2>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets(407,5): error MSB4018: --- End of stack trace from previous location where exception was thrown ---
2>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets(407,5): error MSB4018:    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
2>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets(407,5): error MSB4018:    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
2>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets(407,5): error MSB4018:    at Microsoft.Docker.BuildTasks.DockerBuildTask.<EvaluateBuildPrerequisitesAsync>d__35.MoveNext()
2>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets(407,5): error MSB4018: --- End of stack trace from previous location where exception was thrown ---
2>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets(407,5): error MSB4018:    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
2>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets(407,5): error MSB4018:    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
2>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets(407,5): error MSB4018:    at Microsoft.Docker.BuildTasks.DockerBuildTask.<ExecuteAsync>d__34.MoveNext()
2>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets(407,5): error MSB4018: --- End of stack trace from previous location where exception was thrown ---
2>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets(407,5): error MSB4018:    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
2>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets(407,5): error MSB4018:    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
2>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets(407,5): error MSB4018:    at Microsoft.Docker.BuildTasks.DockerBuildTask.Execute()
2>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets(407,5): error MSB4018:    at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
2>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets(407,5): error MSB4018:    at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext()
2>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets(407,5): error MSB4018: Error code: DT1005
2>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets(407,5): error MSB4018: Severity: Error
2>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets(407,5): error MSB4018: Command line: docker version --format {{.Server.Os}}
2>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets(407,5): error MSB4018: Command exit code: 1
2>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets(407,5): error MSB4018: Command output: 
2>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets(407,5): error MSB4018: Command error: Error response from daemon: open \\.\pipe\docker_engine_windows: The system cannot find the file specified.
2>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets(407,5): error MSB4018:

docker version命令错误

C:\Users\RajendranK>docker version
Error response from daemon: open \\.\pipe\docker_engine_windows: The system cannot find the file specified.
Client:
 Cloud integration: v1.0.29
 Version:           20.10.21
 API version:       1.41
 Go version:        go1.18.7
 Git commit:        baeda1f
 Built:             Tue Oct 25 18:08:16 2022
 OS/Arch:           windows/amd64
 Context:           default
 Experimental:      true

配置文件内容

Dockerfile

FROM mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2019
ARG source
WORKDIR /inetpub/wwwroot
COPY ${source:-obj/Docker/publish} 

docker-compose.yml

version: '3.4'

services:
  webapplicationframework:
    image: ${DOCKER_REGISTRY-}webapplicationframework
    build:
      context: .\WebApplicationFramework
      dockerfile: Dockerfile

解决方案

1. 检查Docker服务状态

  • 打开任务管理器,查看Docker Desktop Service和Docker Engine进程是否运行,未运行则手动启动;启动失败的话,重启Docker Desktop,必要时卸载重装(提前备份本地镜像)。
  • 若使用Hyper-V后端,执行sc query vmms检查Hyper-V虚拟机管理服务状态,未启动则执行sc start vmms启动。

2. 验证并修复Docker管道

  • 在PowerShell中执行Test-NetConnection -ComputerName . -PipeName docker_engine_windows,若测试失败,打开Docker Desktop的Troubleshoot面板,选择Reset to factory defaults重置配置。
  • 若使用WSL2后端,进入Docker Desktop设置的Resources > WSL Integration,确保对应WSL发行版已启用,重启Docker Desktop生效。

3. 确认系统兼容性

  • 运行windowsservercore-ltsc2019镜像要求主机系统为Windows 10 1809及以上,或Windows Server 2019及以上,不符合则升级系统。

4. 修复Visual Studio Docker工具兼容问题

  • 将Visual Studio 2019更新至最新版本,或更新项目中的Microsoft.Docker.Sdk包,避免工具版本不匹配导致的调用失败。

5. 手动构建验证

  • 跳过Visual Studio工具链,手动执行构建命令:
    # 进入项目根目录
    cd C:\KalaiSelvi\Docker_API\WebApplicationFramework
    # 构建镜像
    docker build -t webapplicationframework -f Dockerfile .
    # 启动容器
    docker run -d -p 8080:80 webapplicationframework
    
  • 若手动构建成功,说明问题出在Visual Studio工具配置,可尝试重新添加Docker支持到项目。

6. 检查用户权限

  • 打开计算机管理 > 本地用户和组 > 组,确认当前用户属于docker-users组,未添加则手动添加后重启电脑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 04:20:21