Dockerdynamic公开端口
一旦容器启动,是否可以dynamic地公开Docker端口 ?
如果不是,那么实现这样的最佳做法是什么?
用例如下: 我需要暂时公开Java JMX Port来configuration某个应用程序,然后closures这些端口(从容器中),而不实际closuresJMX服务或修改Java应用程序。
谢谢
通过使用Docker的Weavenetworking,您可以打开应用程序的任何端口都可以从networking内部访问,而不需要外部干预,这与前面提到的大使模式不同。 但是,这些只能从应用程序所在的子网访问。 您静态显示的端口也将由Docker保持NAT,并且可以在外部访问,但是暂时的只会是内部的。
从来没有find一种dynamic打开端口的方法。
是否有助于打开一个静态端口,并启动/停止容器内的转发到JMX端口的隧道。 socat或ssh想到,例如
ssh -L<static-sourceport>:<targetserver>:<jmx-targetport> localhost
这是一个有趣的用例。 我假设你的意思是“dynamic发布 docker端口”。 如果是这样,你可以看看像大使模式,你可以做一些事情:
-
启动你的java / jmx容器只有一个静态暴露的端口(没有发布到主机)。
-
调出你的大使容器,临时发布你的jmx端口。
-
完成后,请移除您的大使。