首页新闻找找看学习计划

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

0
悬赏园豆:50 [待解决问题]

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

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

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

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

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

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

陈文龙的主页 陈文龙 | 初学一级 | 园豆:152
提问于:2019-08-11 00:27
< >
分享
所有回答(2)
0

我有一个想法,就是在宿主机上,写个脚本,把docker ps -a返回的信息存到一个文件上,把这个文件挂载到容器里,容器读取这个文件的信息,转成集合形式,最后根据name去获取端口。

默卿 | 园豆:3931 (老鸟四级) | 2019-08-12 09:20

这样的话,是否在每次新增容器的时候都需要执行该命令?显得不太合理啊。

支持(0) 反对(0) 陈文龙 | 园豆:152 (初学一级) | 2019-08-12 21:26

@陈文龙: 容器和容器之间是隔离的,容器和宿主机之间也是隔离的,目前能想到的是通过挂载目录同享信息。你网上再找找有木有别的方式。实在不行,就只能在新增前多执行一个命令,或者容器端口从随机改为指定中做一个选择了。

支持(0) 反对(0) 默卿 | 园豆:3931 (老鸟四级) | 2019-08-13 08:51
0

执行写个脚本 执行 docker ps > portmessage.txt 捕获端口映射信息 ,然后用springboot去读取拿到这个端口信息

thelovelybugfly | 园豆:255 (菜鸟二级) | 2019-09-11 09:21

感谢您的回复,我已经找到处理方案了。

支持(0) 反对(0) 陈文龙 | 园豆:152 (初学一级) | 2019-09-11 21:02

@陈文龙: 楼上的处理方案吗

支持(0) 反对(0) thelovelybugfly | 园豆:255 (菜鸟二级) | 2019-09-12 09:12
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册