在运行时转发外部服务设置的容器端口
我有一个服务在host1上的一个容器中运行。 当启动服务时,它会呼叫host2上的一个“主”服务,告诉它绑定到一个任意分配的端口上。
Host2(或群集中的其他主机)通过host1上绑定到容器专用地址的端口不可见。 使用docker run -p
只转发图像运行时已知的端口。
如何将传入主机连接转发到此容器端口?
你可以在你的主机上运行一个代理,在它接收到来自主服务的端口之后,可以被容器通知,然后它将设置必要的端口转发。
像vulcand ,这是一个etcd
支持代理,可能适合该法案。
利用主机networking设置,而不是通过网桥使用NAT,解决了这个问题。
docker run --net="host" ...