docker宿主机随机端口映射了docker容器,如何让docker容器知道宿主机的IP与映射端口呢?

发布于 2022-09-11 21:41:14 字数 627 浏览 15 评论 0

问题描述

docker宿主机随机端口映射了docker容器,如何让docker容器知道宿主机的IP与映射端口呢?

问题出现的环境背景及自己尝试过哪些方法

本人使用springcloud+docker的结构搭建微服务,现在遇到的问题是:

docker宿主机使用-P命令随机端口绑定的docker指定端口(比如每个容器都暴露8080端口),

但是容器中无法知道宿主机的ip和映射端口,即eureka上的实例不知道暴露给外部的什么访问IP和端口(宿主机IP和宿主机port)。

请教各位大神,此问题该如何解决,谢谢!

【docker显示宿主机的随机端口32773映射了容器8080端口】

图片描述

【Eureka显示是容器端口8080,而非宿主机映射端口】

图片描述

你期待的结果是什么?实际看到的错误信息又是什么?

期待容器上能获得宿主机的Ip和映射该容器的端口。
eureka上显示的IP和端口都为宿主机的。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

往昔成烟 2022-09-18 21:41:14

更新:

服务发现中心的端口还是映射到固定宿主机端口吧 怕被外部访问就用 -p 127.0.0.1:9090 来限制,至于 ip,不使用 docker-compose 这类编排方式的话可以让服务发现中心的容器使用 --name 固定名称,其他微服务容器使用 --link 服务发现中心的容器名:别名 来通过别名访问。application.yml 中服务发现中心的注册地址就不需要 IP 了直接用别名,docker 会帮你解析。


eureka 为什么要知道自己的宿主机 IP 和端口?

九厘米的零° 2022-09-18 21:41:14

docker的映射的问题,其实主要是配置的问题。

具体可以看看这篇。讲的比较清晰
https://kalasearch.cn/community/tutorials/how-to-share-data-between-the-docker-container-and-the-host/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文