docker+marathon:如何进行端口Map?

tag5nh1u  于 2021-06-21  发布在  Mesos
关注(0)|答案(1)|浏览(405)

我正在尝试在我的基础设施上启动rstudio。
如果我这样做了:

sudo docker run -d -p 8787:8787 192.168.0.38:5000/rocker/rstudio

然后我的服务器上rstudio运行良好。但是我有mesos和marathon,我想用这个docker命令制作一个marathon的应用程序。
我找不到正确绘制港口Map的方法。
我试过:

{
  "type": "DOCKER",
  "volumes": [],
  "docker": {
    "image": "192.168.0.38:5000/rocker/rstudio",
    "network": "HOST",
    "privileged": true,
    "parameters": [
      {
        "key": "p",
        "value": "8787:8787"
      }
    ],
    "forcePullImage": true
  }
}

希望我能工作,但从来没有开始。
我试着:

{
  "type": "DOCKER",
  "volumes": [],
  "docker": {
    "image": "192.168.0.38:5000/rocker/rstudio",
    "network": "HOST",
    "portMappings": [
      {
        "containerPort": 8787,
        "hostPort": 8787,
        "servicePort": 10003,
        "protocol": "tcp"
      }
    ],
    "privileged": true,
    "parameters": [],
    "forcePullImage": true
  }
}

这不是更好。
您建议我使用哪个json来转换这个正在工作的docker命令:

sudo docker run -d -p 8787:8787 192.168.0.38:5000/rocker/rstudio

??

sqserrrh

sqserrrh1#

端口Map(与docker一样)只与 BRIDGE 网络模式,另请参阅marathon文档。在您的情况下,应采用以下方法:

...
"container": {
  "type": "DOCKER",
  "docker": {
    "network": "BRIDGE",
    "portMappings": [
      {
        "protocol": "tcp",
        "containerPort": 8787,
        "hostPort": 8787
      }
    ]
  }
},
...

中层doc

相关问题