Docker + 马拉松 : how to do a port mapping ?

标签 docker mesos marathon

我正在尝试在我的基础架构上启动 rstudio。

如果我做 :

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

然后我让 rstudio 在我的服务器上运行良好。
但是我有 mesos 和 marathon,并且想用这个 docker 命令制作一个 Marathon 的应用程序。

我找不到正确映射端口的方法。

我试过 :
{
  "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

??

最佳答案

端口映射(与 Docker 一样)仅与 BRIDGE 相关组网方式,另见Marathon doc .在您的情况下,以下内容应该有效:

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

Mesosphere doc

关于Docker + 马拉松 : how to do a port mapping ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34707732/

相关文章:

macos - 为caffe构建GPU docker镜像时出错: Unsupported gpu architecture 'compute_60'

php - 无法看到 mysql 数据库时 Composer 安装失败

Ubuntu 14.04 32 位上的 Apache Mesos

spring-boot - 在 Marathon/Mesos 中部署的 Spring Boot 应用程序

Mesos Slave 拒绝所有具有持久卷的 Marathon 作业;声称没有可用空间

docker - 如何在 aerokube selenoid docker 镜像上启动文件服务器

docker - XDEBUG 无法正常工作,但已安装并且日志显示 "Connect to client :-)"

docker - Marathon - 当返回代码 = 0 时不重新部署应用程序?

azure - 如何为Azure DCOS配置子域?

node.js - 如何聚合 mesos 中所有 docker 容器的日志