为什么在dcos中containerport和hostport需要相同?

9gm1akwq  于 2021-06-26  发布在  Mesos
关注(0)|答案(1)|浏览(322)

我有一个具有以下应用程序定义和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,这样我就可以扩展应用程序,它将分配免费的主机端口到应用程序。这里有什么问题请指点一下?

fslejnso

fslejnso1#

hostPort 等于0意味着您的应用程序将在mesos分配的随机端口上启动。看到这个答案了吗
你不需要保持 hostPort 以及 containerPort 平等。 containerPort 必须匹配应用程序正在侦听的端口。 hostPort 可能是任何端口(这就是为什么应该使用0)。然后集装箱船将传递发送到/来自您的集装箱的数据包 hostPostcontainertPort 在容器内。

相关问题