对于 Docker Toolbox,这有点棘手,但实际上 core-2.0 与这里无关。这都是关于 docker、docker-toolbox 和 VS 的。
首先:
这是启动 docker 服务的方式吗?我尝试运行这个可执行文件,它似乎有效。
是的。如果 docker 机器/服务正在运行 - 那很好!
现在,您必须意识到,在 docker 中,通常有关 docker 如何/在何处运行的信息保存在环境变量. The quickstart
脚本不仅为您启动 docker-machine 并检查一些基本的事情,它还设置了一些环境变量,以便以后所有命令docker
, docker-compose
等知道在哪里寻找 docker 虚拟机。在您/我们的情况下,该信息主要由 VM 的 IP 和 Docker 侦听的端口号组成。
..并且您的 Visual Studio 对此一无所知,因为,我敢打赌,您已经从开始菜单或桌面图标或双击解决方案文件运行了 VisualStudio,因此它没有机会获取环境变量从quickstart
安慰。
解决方案非常简单:确保 VS 获取该信息。也就是说,确保它获取环境变量,and确保它得到fresh它们的状态,因为 IP/端口有时可能会波动。因此,不要只是将它们复制到操作系统设置中,因为没有任何东西会自动刷新它们。
我发现最简单的方法是关闭 Visual Studio,运行 docker toolbox faststart console,然后从该控制台中运行 VisualStudio,以我的VS2017社区版为例:
Starting "default"...
(default) Check network to re-create if needed...
(default) Waiting for an IP...
(.......snip..........)
## .
## ## ## ==
## ## ## ## ## ===
/"""""""""""""""""\___/ ===
~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ / ===- ~~~
\______ o __/
\ \ __/
\____\_______/
docker is configured to use the default machine with IP 192.168.99.100
For help getting started, check out the docs at https://docs.docker.com
Start interactive shell
quetzalcoatl@LAP049 MINGW32 ~
$ /c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2017/Community/Common7/IDE/devenv.exe C:\\PATH\\TO\\MY\\SOLUTION.sln
即使使用 TAB 补全,路径也很长,所以通常会写一个很小的.sh
为我运行它的脚本。
顺便提一句!请注意,DEVENV 的路径必须是类 UNIX 的(/c/Program\ Files...
),因为 mingw shell 必须理解这一点,而 SOLUTION 的路径必须是普通的 Windows 路径(c:\projects\foo\bar\..
)因为 VisualStudio 会在启动后尝试读取该内容。