我有一个具有以下应用程序定义和dcos设置的web应用程序,并在部署了marathonlb的azure云上运行。当我添加以下服务时。
{
"id": "web",
"container": {
"type": "DOCKER",
"docker": {
"image": "myimage",
"network": "BRIDGE",
"portMappings": [
{ "hostPort": 5000, "containerPort": 5000, "servicePort": 0 }
],
"forcePullImage":true
}
},
"instances": 1,
"cpus": 0.1,
"mem": 614,
"labels":{
"HAPROXY_GROUP":"external",
"HAPROXY_0_VHOST":"localhost",
"HAPROXY_0_MODE":"http"
}
}
只有在保持containerport和hostport相同的情况下,我才能通过浏览器访问我的应用程序。
如果将主机端口更改为0,则无法访问该应用程序。我需要主机端口为0,这样我就可以扩展应用程序,它将分配免费的主机端口到应用程序。这里有什么问题请指点一下?
1条答案
按热度按时间fslejnso1#
hostPort
等于0意味着您的应用程序将在mesos分配的随机端口上启动。看到这个答案了吗你不需要保持
hostPort
以及containerPort
平等。containerPort
必须匹配应用程序正在侦听的端口。hostPort
可能是任何端口(这就是为什么应该使用0)。然后集装箱船将传递发送到/来自您的集装箱的数据包hostPost
至containertPort
在容器内。