Docker在Visual Studio 2017中失败,我如何让Docker在VS2017中运行

我已经安装了Docker,并打开了系统BIOS中的虚拟化。 当我去build立一个我的.NET核心项目的docker集装箱,它会失败,这个错误:

“系统找不到指定的文件,在Windows的默认守护进程configuration中,必须运行docker客户端才能连接,这个错误也可能表明docker守护进程没有运行。

  • 还注意: Docker系统托盘中的Docker图标没有出现,我也收到了这个错误:time =“2017-04-13T21:23:11-05:00”level = info msg = “无法使用系统证书池:crypto / x509:系统根池在Windows上不可用“

这里有一些JSONfilter问题的完整错误:

错误MSB4018“PrepareForBuild”任务意外失败。 Microsoft.DotNet.Docker.CommandLineClientException:连接期间出错:获取htp://%2F%2F.%2Fpipe%2Fdocker_engine/v1.27/containers/json?filters =%7B%22name%22%3A%7B%22dockercompose512535401_webapplication1_% 22%3%7D%2C%22%22%3A%7B%22%22%3%7D%7D&limit = 1:打开////pipe/docker_engine:系统找不到指定的文件。 在Windows的默认守护进程configuration中,docker客户端必须运行提升才能连接。 这个错误也可能表明docker守护进程没有运行。

有关更多疑难解答信息,请转至http://aka.ms/DockerToolsTroubleshooting —> Microsoft.DotNet.Docker.CommandLineClientException:连接期间发生错误:获取http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.27 / containers / json?filters =%7B%22name%22%3A%7B%22dockercompose512535401_webapplication1_%22%3Atrue%7D%2C%22status%22%3A%7B%22running%22%3Atrue%7D%7D&limit = 1 :open / /./pipe/docker_engine:系统找不到指定的文件。 在Windows的默认守护进程configuration中,docker客户端必须运行提升才能连接。 这个错误也可能表明docker守护进程没有运行。 在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)在Microsoft.DotNet.Docker.DockerClient.d__0.MoveNext跟踪—在Microsoft.DotNet.Docker.DockerClient.d__0.MoveNext()—从以前的位置抛出exception的堆栈跟踪结束—在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)在Microsoft.DotNet.Docker.DockerWorkspace.d__13.MoveNext()—从以前的位置抛出exception的堆栈跟踪结束—在System.Runtime.CompilerServices .TaskAwaiter.ThrowForNonSuccess(任务任务)在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)在Microsoft.DotNet.Docker.BuildTasks.DockerBaseTask.Execute()在Microsoft.Build.BackEnd.TaskExecutionHos 在Microsoft.Build.BackEnd.TaskBuilder.d__26.MoveNext()docker-compose C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Enterprise \ MSBuild \ Microsoft.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute() \ VisualStudio \ v15.0 \ Docker \ Microsoft.VisualStudio.Docker.Compose.targets 153

这看起来像你已经使用Docker Toolbox,工具箱需要额外的步骤才能正常工作。 你应该尝试运行这个:

(假设存在默认机器)

docker-machine env default

在这个命令的结尾会有一个命令的提示,你必须根据shell的环境运行。 对于CMD它将看起来像@for …而对于PowerShell,它将看起来像一个调用expression式…

确保你运行这个命令,这是非常重要的! 然后使用这个testingDocker守护进程:

docker info

作为一个侧面说明那些关于钥匙圈的警告并不重要,这只是因为你在Windows上运行,并没有负面影响。

希望这可以帮助!

我有同样的问题,删除docker的边缘版本和安装稳定的版本解决了我。

我在使用VS2017和Windows 7时遇到同样的问题,同时尝试从VS2017进行debugging和运行应用程序。 问题似乎是VS可以访问docker所需的环境variables。 对我而言,解决scheme是从CMD或PS执行命令docker-machine env default ,然后在Windows中将这些值设置为环境值,如下图所示

Windows添加环境variables