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和Mesos。 我可以成功地从marathon web控制台调度命令,但当我尝试调度涉及docker映像的作业时,我立即得到作业失败。另外,我没有得到标准的或标准的文件

运行普通命令的示例:

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集装箱船

  • 设置--containerizers=docker,mesos“命令行参数:

    echo "docker,mesos" | sudo tee /etc/mesos-slave/containerizers
    
  • 将执行器超时增加到5分钟1:(我想这是可选的)

  • 重新启动Mesos从机:

    sudo service mesos-slave restart
    
  • sudo service mesos-slave restart