Docker 马拉松码头工人任务失败
我在我的两台机器上安装了Marathon和Mesos。 我可以成功地从marathon web控制台调度命令,但当我尝试调度涉及docker映像的作业时,我立即得到作业失败。另外,我没有得到标准的或标准的文件 运行普通命令的示例:Docker 马拉松码头工人任务失败,docker,mesos,marathon,Docker,Mesos,Marathon,我在我的两台机器上安装了Marathon和Mesos。 我可以成功地从marathon web控制台调度命令,但当我尝试调度涉及docker映像的作业时,我立即得到作业失败。另外,我没有得到标准的或标准的文件 运行普通命令的示例: Marathon job conf: { "id": "testecho", "cmd": "echo hello; sleep 10", "cpus": 1, "mem": 128, "disk":
Marathon job conf:
{
"id": "testecho",
"cmd": "echo hello; sleep 10",
"cpus": 1,
"mem": 128,
"disk": 0,
"instances": 1
}
在mesos上,我看到任务已经成功。我有标准文件和标准文件一样正常
但是现在如果我运行一个简单的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": {}
}
]
}
在mesos上,我看到它立即失败了:
而且我没有标准文件或标准输出文件:
我还注意到,在我的两台机器上,当我运行时:
docker ps -a
我在两台机器上都看不到任何东西。这就意味着码头工人的工作还没有开始
什么可能会影响docker部署
我能想到的一个原因是,marathon用来启动任务的用户没有访问docker的权限?我如何测试这个
我注意到当我运行命令时:
sudo cat /etc/passwd
我看到一个用户zookeeper。也许这就是无法访问docker的用户
但当我这样做的时候:
su zookeeper
我不更改用户配置文件在阅读了一些教程后,我从以下教程中找到了答案: 我必须在我的mesos奴隶上启用Docker集装箱船
echo "docker,mesos" | sudo tee /etc/mesos-slave/containerizers
sudo service mesos-slave restart
sudo service mesos-slave restart