使用docker内部IP地址时未获取输出

使用docker内部IP地址时未获取输出,docker,containers,asp.net-core-3.1,Docker,Containers,Asp.net Core 3.1,我正在为我的asp.net核心web api应用程序使用docker容器,容器已启动并正在运行 现在我使用下面的命令获取docker内部IP地址 docker inspect-f“{range.NetworkSettings.Networks}{{.IPAddress}}{{end}”d986472784cb并获取IP地址为172.20.0.2 现在我在浏览器中点击下面的url时并没有得到任何结果 http://172.20.0.2/WeatherForecast,看到连接错误\u超时错误 本地

我正在为我的asp.net核心web api应用程序使用docker容器,容器已启动并正在运行

现在我使用下面的命令获取docker内部IP地址

docker inspect-f“{range.NetworkSettings.Networks}{{.IPAddress}}{{end}”d986472784cb
并获取IP地址为
172.20.0.2

现在我在浏览器中点击下面的url时并没有得到任何结果

http://172.20.0.2/WeatherForecast
,看到
连接错误\u超时
错误

本地地址<代码>https://localhost:32772/weatherforecast工作正常


可能是什么问题?

您需要ip地址url中的端口号

容器专用IP在各种常见情况下都不起作用:

  • 如果您不是从同一主机呼叫,则根本无法访问容器专用IP
  • 如果涉及到VM(Windows上的Docker Toolbox、Windows或Mac上的Docker Desktop),则根本无法访问容器专用IP
  • 如果您不在同一Docker内部网络上,则可能无法访问容器专用IP

由于它在很多环境中都不起作用,所以我不建议查找这个IP地址:忘记存在特定的
docker inspect
命令。在浏览器中,使用主机的IP地址或DNS名称(如果容器和浏览器位于同一系统上,则使用
localhost
,但如果涉及Docker Toolbox,则不使用),以及发布的端口号(
Docker run-p
选项,Docker Compose
端口:
选项,该对中的第一个端口号)。

谢谢。我有两个web应用程序在同一个容器网络
WebApi
WebFront
中运行。我在某处看到它自动解析DNS,但甚至
http://webapi/weatherforecast
也无法访问。问题,我们必须使用端口号吗?当端口号是协议的默认端口号时,您通常不需要端口号(未加密HTTP为80,HTTP/TLS为443,PostgreSQL为5432,Redis为6379,…)。否则,需要端口号。(非码头工人专用。)