马拉松Docker任务失败
我在两台机器上安装了Marathon和Mesos。 我可以成功地从马拉松的Web控制台安排命令,但是当我尝试安排一个涉及docker图像的工作时,我立即就失败了。 另外我没有得到stderr或stdout文件。
示例运行常规命令:
Marathon job conf: { "id": "testecho", "cmd": "echo hello; sleep 10", "cpus": 1, "mem": 128, "disk": 0, "instances": 1 }
在我看来,任务已经成功。 我有正常的stderr和stdout文件。
但是现在如果我运行一个简单的docker镜像任务:
Marathon job conf: { "id": "/ubuntu", "cmd": "date -u +%T", "cpus": 0.5, "mem": 512, "disk": 0, "instances": 1, "container": { "type": "DOCKER", "volumes": [], "docker": { "image": "libmesos/ubuntu", "network": null, "portMappings": null, "privileged": false, "parameters": [], "forcePullImage": false } }, "portDefinitions": [ { "port": 10001, "protocol": "tcp", "labels": {} } ] }
我看到它瞬间失败了:
我没有stderr或stdout文件:
我也注意到,在我的两台机器上,当我运行时:
docker ps -a
我在两台机器上都看不到任何东西。 所以这意味着docker工作甚至没有启动
什么可能影响docker部署?
我能想到的一个原因是,马拉松用来启动任务的用户无法访问泊坞窗吗? 我如何testing这个?
我注意到,当我运行命令:
sudo cat /etc/passwd
我看到一个用户动物园pipe理员。 也许这是没有访问docker的用户?
但是,当我这样做:
su zookeeper
我不会更改用户configuration文件
阅读了几个教程后,我find了以下教程的答案: http : //frankhinek.com/deploy-docker-containers-on-mesos-0-20/
我必须在我的mesos-slave上启用Docker Containerizer
-
设置–containerizers = docker,mesos“命令行参数:
echo "docker,mesos" | sudo tee /etc/mesos-slave/containerizers
-
增加执行器超时到5分钟1 :(我猜这是可选的)
echo "5mins" | sudo tee /etc/mesos-slave/executor_registration_timeout
-
重新启动Mesos Slave:
sudo service mesos-slave restart