马拉松码头工作在部署状态下被绞死

时间:2015-07-30 14:57:53

标签: docker mesosphere marathon

您好我到目前为止已经成功完成了马拉松的简单工作,但是当我尝试通过马拉松框架在mesos中部署deocker工作时,它仍然存在。

我使用如下的json文件来部署docker作业:

{
  "id": "pga-docker",
  "cpus": 0.2,
  "mem": 1024.0,
  "instances": 1,
  "container": {
    "type": "DOCKER",
    "docker": {
      "image": "pga",
      "network": "BRIDGE",
      "portMappings": [
        { "containerPort": 80, "hostPort": 6565, "servicePort": 0, "protocol": "tcp" }
      ]
    }
  }
}

我的pga docker图像作为容器运行时没有问题,但通过马拉松它只是不工作。它永远处于部署状态。

我使用以下命令行:

curl -X POST http://10.141.141.10:8080/v2/apps -d @basic-3.json -H "Content-type: application/json"

但是当我从马拉松UI运行相同的图像时,它正在工作。要从马拉松运行,我在UI新作业页面的cmd字段中使用了“docker run --publish 6060:80 --name test --rm pga”。

任何人都知道为什么在命令行方法中被绞死?

1 个答案:

答案 0 :(得分:0)

这是我在json文件的一些试验和错误中发现的。

我发现当我们在本地系统中运行docker镜像时,如果我们提到了一个入口点或cmd,那么它将在运行容器时执行。但是对于mesos / marathon来说这是不一样的。我的观察是,如果我在部署json中明确提到了cmd,那么它的工作正常。

"cmd":"sh pga-setup.sh"

我很想知道是否有人遇到类似的问题,以另一种方式解决了这个问题。