.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,提问作者
相关产品推荐
相关产品推荐

