从容器中获取动态关联的IP/端口

从容器中获取动态关联的IP/端口,ip,port,containers,mesos,marathon,Ip,Port,Containers,Mesos,Marathon,我有一个应用程序,它使用Marathon自动分配“端口”功能,通过Marathon多个类似的服务器(用Docker容器封装)进行部署。这是我在我的应用程序中需要的好方法 问题是,我部署在Marathon(服务器)中的服务器使用的代码与现代分布式体系结构不太匹配。PyWPS请求在静态配置文件中定义客户端应用程序轮询的IP和端口 当我的容器上有静态IP/端口时,很容易在容器启动时运行脚本(在容器内),该脚本“sed”配置文件以从我在容器启动命令行中设置的ENVVAR中放入正确的IP/端口值 当使用不

我有一个应用程序,它使用Marathon自动分配“端口”功能,通过Marathon多个类似的服务器(用Docker容器封装)进行部署。这是我在我的应用程序中需要的好方法

问题是,我部署在Marathon(服务器)中的服务器使用的代码与现代分布式体系结构不太匹配。PyWPS请求在静态配置文件中定义客户端应用程序轮询的IP和端口

当我的容器上有静态IP/端口时,很容易在容器启动时运行脚本(在容器内),该脚本“sed”配置文件以从我在容器启动命令行中设置的ENVVAR中放入正确的IP/端口值

当使用不确定的动态IP/端口时,会出现问题。
当容器通过Marathon部署时,是否有方法在容器中捕获这些信息,作为一种事件“container\u start”钩子?

如果我理解正确,这应该可以通过与您描述的类似方式轻松解决

例如,如果您使用主机网络和随机端口运行应用程序(例如通过指定
“端口”:[0]
),则Marathon将设置
$HOST
$PORT0
环境变量。您不需要手动设置类似的内容


然后,让您的入口点脚本根据这两个环境变量操作配置,您应该有一个完全动态的ip/端口设置。

感谢Tobi的帮助。我最终修补了我的服务器代码,因为在我的例子中它更简单。“但是你的解决办法也行。”马特,你能解释一下吗?你是以什么方式应用补丁的?是我修补PyWPS以获得想要的行为的方式