如何连接到Docker Toolbox中托管的容器?

时间:2017-01-11 08:11:45

标签: nginx asp.net-core .net-core docker-toolbox

我正在尝试在Docker容器中运行我的ASP.NET Core 1.1 Web API,但我无法从浏览器或curl连接到Web API。为了排除故障,我还提出了标准的nginx和Apache httpd容器,也无法连接到这些容器,所以我认为这是一个Docker / Docker工具箱/配置问题,而不是我的应用程序的问题。

我将专注于我对nginx和Apache所做的事情:

我在Windows 7 Professional上运行Docker Toolbox,一切似乎都按照我的预期运行。

  • Docker命令全部按预期工作
  • 我可以访问基础Windows文件系统
  • 我可以从curl http://localhost获得预期的结果(如果我在Windows 7上启动默认的IIS网站)

所以现在我关闭IIS并在容器中运行nginx:

$ docker run -d -p 80:80 nginx
45bb1f373c11b820d8431de3eb3bf222d57d412de53e8625f461b62c4279e644

Docker现在显示运行nginx:

$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                         NAMES
45bb1f373c11        nginx               "nginx -g 'daemon off"   47 seconds ago      Up 48 seconds       0.0.0.0:80->80/tcp, 443/tcp   admiring_pike

但是我无法连接curl(在Docker Toolbox命令提示符下)或Windows中的Web浏览器:

$ curl http://localhost
curl: (7) Failed to connect to localhost port 80: Connection refused

如果我运行Apache 2.4(httpd)容器,我会得到完全相同的结果。

有什么想法吗?谢谢!彼得

2 个答案:

答案 0 :(得分:3)

我在另一个问题中找到了答案here

由于Docker Toolbox在轻量级Linux VM上运行,因此它具有自己的IP地址。我们需要使用<application android:theme="@style/Theme.AppCompat.Light" </application> localhost映射到VM,并通过它使用以下命令找到的IP地址访问VM:

DOCKER_HOST

答案 1 :(得分:0)

在VM上运行时,需要遵循here中的docker文档。

之后,运行以下命令以检查您的VM的IP地址。

docker-machine ip default

启动nginx并在浏览器中点击[ip默认地址]:port。有用!