我正在尝试在Docker容器中运行我的ASP.NET Core 1.1 Web API,但我无法从浏览器或curl
连接到Web API。为了排除故障,我还提出了标准的nginx和Apache httpd容器,也无法连接到这些容器,所以我认为这是一个Docker / Docker工具箱/配置问题,而不是我的应用程序的问题。
我将专注于我对nginx和Apache所做的事情:
我在Windows 7 Professional上运行Docker Toolbox,一切似乎都按照我的预期运行。
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)容器,我会得到完全相同的结果。
有什么想法吗?谢谢!彼得
答案 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。有用!