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

我试图在Docker容器中运行ASP.NET Core 1.1 Web API,但无法从浏览器或curl连接到Web API.为了进行故障排除,我还提出了标准的nginx和Apache httpd容器,并且无法连接到它们,因此我认为这是Docker / Docker Toolbox /配置问题,而不是我的应用程序问题.

我将重点介绍我对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)容器,则得到的结果完全相同.

有任何想法吗?谢谢!彼得

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

因为Docker Toolbox在轻量级Linux VM上运行,所以它具有自己的IP地址.需要使用DOCKER_HOST将本地主机映射到VM,否则将通过其IP地址访问VM,该IP地址是使用以下命令找到的:

docker-machine ip default

转载注明原文:nginx-如何连接到Docker Toolbox中托管的容器? - 代码日志