我有两个docker容器-一个运行监控应用程序,另一个运行服务,都运行在同一个网络名称空间中,net=host(mesos使用此参数运行所有作业。)服务可以绑定到随机端口。如何从监视容器查询服务绑定到哪个端口?我试着阅读/proc/net/tcp,但这似乎非常复杂。有更简单的方法吗?
zf2sa74q1#
使用 link 为此:
link
docker run --name myService service docker run --link myService monitoring
更多信息可以在这里找到https://docs.docker.com/engine/userguide/networking/default_network/dockerlinks/
ylamdve62#
所以,如果我理解正确,服务绑定到随机端口?如果是,为什么会这样?我想这还远远不够理想,我使用的所有服务在容器中使用时都会将bin发送到特定的端口。例如,如果有一个应用程序(通过marathon启动)绑定到通过环境变量定义的端口,则可以在启动容器时设置此环境变量,并使用 BRIDGED 网络模式,让mesos从其端口范围中选择一个端口。如果安装mesos dns,可以使用它从应用程序名称确定ip/端口组合。e、 g.如果马拉松应用程序名为testapp,则服务名为 testapp.marathon.mesos .看见http://mesosphere.github.io/mesos-dns/docs/
BRIDGED
testapp.marathon.mesos
2条答案
按热度按时间zf2sa74q1#
使用
link
为此:更多信息可以在这里找到https://docs.docker.com/engine/userguide/networking/default_network/dockerlinks/
ylamdve62#
所以,如果我理解正确,服务绑定到随机端口?如果是,为什么会这样?我想这还远远不够理想,我使用的所有服务在容器中使用时都会将bin发送到特定的端口。
例如,如果有一个应用程序(通过marathon启动)绑定到通过环境变量定义的端口,则可以在启动容器时设置此环境变量,并使用
BRIDGED
网络模式,让mesos从其端口范围中选择一个端口。如果安装mesos dns,可以使用它从应用程序名称确定ip/端口组合。e、 g.如果马拉松应用程序名为testapp,则服务名为
testapp.marathon.mesos
.看见
http://mesosphere.github.io/mesos-dns/docs/