无法从主机连接到docker容器内的.net core网站
我已经对此进行了搜索,但找不到解决方案。。。我有一个.NET核心web api项目,并将其封装在docker中。docker的主机是CentOS 7.5的VirtualBox中的虚拟机。我使用以下命令运行容器:无法从主机连接到docker容器内的.net core网站,docker,.net-core,Docker,.net Core,我已经对此进行了搜索,但找不到解决方案。。。我有一个.NET核心web api项目,并将其封装在docker中。docker的主机是CentOS 7.5的VirtualBox中的虚拟机。我使用以下命令运行容器: docker run -d -name webapi -p 80:5000 netcorelnx docker exec -ti webapi /bin/bash 然后,我可以使用命令: docker run -d -name webapi -p 80:5000 netcorelnx
docker run -d -name webapi -p 80:5000 netcorelnx
docker exec -ti webapi /bin/bash
然后,我可以使用命令:
docker run -d -name webapi -p 80:5000 netcorelnx
docker exec -ti webapi /bin/bash
到达该容器并在其中执行:
curl localhost:5000/api/values
这将返回.NET核心web api项目返回的正确值。
但是,当我试图通过使用url从主机浏览器调用此功能时,它会显示“连接已重置”。
这是我的dockerfile:
...
FROM microsoft/dotnet:2.1-aspnetcore-runtime-bionic AS runtime
...
ENV ASPNETCORE_URLS http://+:5000
ENTRYPOINT["dotnet", "NetCoreWebApi.dll"]
出什么事了?像往常一样,经过数小时的调查和发帖,我找到了解决办法。问题是.NET核心应用程序的代码不是我写的。有一句话:
.UseKestrel(options => { options.Listen(IPAddress.Loopback, 5000); });
而不是
.UseKestrel(options => { options.Listen(IPAddress.Any, 5000); });