无法从主机连接到Docker容器内的.net核心网站

时间:2019-01-03 10:33:42

标签: docker .net-core

我已经搜索过此问题,但找不到解决方案...我有一个.NET Core Web API项目,并将其容器化在Docker内部。我的Docker主机是带有CentOS 7.5的VirtualBox中的VM。我使用以下命令运行容器:

docker run -d -name webapi -p 80:5000 netcorelnx

然后我可以使用以下命令:

docker exec -ti webapi /bin/bash

转到该容器并在其中执行:

curl localhost:5000/api/values

这将返回我的.NET Core Web API项目返回的正确值。 但是,当我尝试通过主机的浏览器通过使用URL http://localhost/api/values来调用它时,它说“连接已重置”。 这是我的dockerfile:

...
FROM microsoft/dotnet:2.1-aspnetcore-runtime-bionic AS runtime
...
ENV ASPNETCORE_URLS http://+:5000
ENTRYPOINT["dotnet", "NetCoreWebApi.dll"]

怎么了?

1 个答案:

答案 0 :(得分:0)

像往常一样,经过许多小时的调查并发布了一个问题,我找到了解决方案。问题出在我未编写的.NET核心应用程序的代码中。有一行:

.UseKestrel(options => { options.Listen(IPAddress.Loopback, 5000); });

代替

.UseKestrel(options => { options.Listen(IPAddress.Any, 5000); });