【问题标题】:Cannot connect from host to .net core website inside docker container无法从主机连接到 docker 容器内的 .net 核心网站
【发布时间】:2019-01-03 18:51:48
【问题描述】:

我已经对此进行了搜索,但找不到解决方案...我有一个 .NET Core Web api 项目并将其容器化到 docker 中。我的 docker 主机是带有 CentOS 7.5 的 VirtualBox 中的虚拟机。我使用以下命令运行容器:

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"]

怎么了?

【问题讨论】:

    标签: docker .net-core


    【解决方案1】:

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

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

    而不是

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-03
      • 1970-01-01
      • 2018-08-15
      • 2020-09-29
      • 1970-01-01
      • 2021-12-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多