您好我到目前为止已经成功完成了马拉松的简单工作,但是当我尝试通过马拉松框架在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”。
任何人都知道为什么在命令行方法中被绞死?
答案 0 :(得分:0)
这是我在json文件的一些试验和错误中发现的。
我发现当我们在本地系统中运行docker镜像时,如果我们提到了一个入口点或cmd,那么它将在运行容器时执行。但是对于mesos / marathon来说这是不一样的。我的观察是,如果我在部署json中明确提到了cmd,那么它的工作正常。
"cmd":"sh pga-setup.sh"
我很想知道是否有人遇到类似的问题,以另一种方式解决了这个问题。