我有一个基于 ASP.NET Core 3.1 框架编写的 Web API 应用程序,我想使用 docker 运行它。当我使用 docker 单击“运行”时,Visual Studio 失败并将以下内容记录到调试窗口中。
C:\Users\myusername.nuget\packages\microsoft.visualstudio.azure.containers.tools.targets\1.9.10\build\Container.targets(198,5):错误 CTC1003:Visual Studio 容器工具需要 Docker 才能运行
在查看该错误之前的日志时,我可以看到 VS 正在尝试使用以下命令运行 docker 映像
docker run -dt -v "C:\Users\myusername\vsdbg\vs2017u5:/remote_debugger:rw" -v "C:\WinProjects\ProjectName\ProjectName:/app" -v "C:\WinProjects\ProjectName:/src" -v "C:\Users\myusername\AppData\Roaming\Microsoft\UserSecrets:/root/.microsoft/usersecrets:ro" -v "C:\Users\myusername\AppData\Roaming\ASP.NET\Https:/root/.aspnet/https:ro" -v "C:\Users\myusername\.nuget\packages\:/root/.nuget/fallbackpackages2" -v "C:\Program Files\dotnet\sdk\NuGetFallbackFolder:/root/.nuget/fallbackpackages" -e "DOTNET_USE_POLLING_FILE_WATCHER=1" -e "ASPNETCORE_ENVIRONMENT=Development" -e "ASPNETCORE_URLS=https://+:443;http://+:80" -e "NUGET_PACKAGES=/root/.nuget/fallbackpackages2" -e "NUGET_FALLBACK_PACKAGES=/root/.nuget/fallbackpackages;/root/.nuget/fallbackpackages2" -P --name ProjectName --entrypoint tail projectname:dev -f /dev/null
但是该命令会引发以下错误
docker:来自守护进程的错误响应:无效的卷规范:'C:\Users\myusername\AppData\Roaming\ASP.NET\Https:/root/.aspnet/https:ro'。
如何解决此问题并从 Visual Studio 2019 运行 Docker 映像?
在 Visual Studio 中使用Package Manager Console
,以下命令可以正常工作。
docker ps
docker-machine status
我不明白为什么 Visual Studio 会抛出error CTC1003: Visual Studio container tools require Docker to be running
我还执行ps kill
了通过运行找到的所有图像docker ps
。我也跑去docker system prune -a
收拾东西。但仍然是同样的问题。
此外,我将docker-compose
项目添加到我的解决方案中。当它运行时,我收到以下错误
-------------------------------------------------------------------
You may only use the Microsoft .NET Core Debugger (vsdbg) with
Visual Studio Code, Visual Studio or Visual Studio for Mac software
to help you develop and test your applications.
-------------------------------------------------------------------
It was not possible to find any installed .NET Core SDKs
Did you mean to run .NET Core SDK commands? Install a .NET Core SDK from:
https://aka.ms/dotnet-download
The target process exited without raising a CoreCLR started event. Ensure that the target process is configured to use .NET Core. This may be expected if the target process did not run on .NET Core.
The program 'dotnet' has exited with code 145 (0x91).