docker - 使用 docker 内部 IP 地址时没有得到输出
问题描述
我正在为我的 asp.net 核心 Web api 应用程序使用 docker 容器,并且容器已启动并正在运行。
现在我正在使用以下命令获取 docker 内部 IP 地址,
docker inspect -f "{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}" d986472784cb
并将 IP 地址获取为172.20.0.2
.
现在在浏览器中点击以下网址时我没有得到任何结果
http://172.20.0.2/WeatherForecast
,看到ERR_CONNECTION_TIMED_OUT
错误。
本地地址https://localhost:32772/weatherforecast
工作正常。
可能是什么问题?
解决方案
容器私有 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 Composeports:
选项,第一个端口号来自那对)。
推荐阅读
- amazon-web-services - 是否可以在一段时间内获取 API 网关的平均消息大小?
- api - 如何在颤动中进行字符串的api调用?
- r - 在数据框中删除字符串以进行分组
- python - 使用 pandas 转换 ID 后的表
- reactjs - 使用 .Net core 3.1 在我们的 React 应用程序中加载资源失败:net::ERR_HTTP2_PROTOCOL_ERROR
- python - 替换一系列数据帧中的值(int64)
- javascript - 访问大对象的属性以映射它们,但前提是它们在同一个 Parent 下并且具有相同的 name 属性并更改 name 属性
- flutter - 我们如何在颤振中使用依赖函数
- github - Github 应用程序转移到组织未显示“安装应用程序”等
- javascript - 如何在填充时允许猫鼬模式 Schema.Types.ObjectId 为空