使用docker内部IP地址时未获取输出
我正在为我的asp.net核心web api应用程序使用docker容器,容器已启动并正在运行 现在我使用下面的命令获取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超时错误 本地
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,…)。否则,需要端口号。(非码头工人专用。)