Docker应用程序部署在Marathon上挂起,在Mesos上失败

我尝试Dockerizing Zookeeper / Marathon / Mesos( Dockerized Mesos集群部署Docker容器)(可能是愚蠢的)任务。

到目前为止,我在两个物理分离的节点上有一个工作的Mesos集群:一个节点同时运行一个Mesos 主站和一个从站 (容器Dockerfiles链接),第二个节点只运行一个从站。 他们似乎运作良好; 我能够通过Marathon(也是自己的容器,在主节点和从属节点上运行)提交非常简单的作业,并且成功完成。

但是,当我尝试通过Marathon API提交Docker容器时 ,它似乎挂起。 Marathon界面挂在“部署”上,即使放置15分钟后,也不会改变,停止,重新提交,然后再等待15分钟。

马拉松用户界面,描绘看似冻结的Docker任务的部署

同时,任务仍然被提交给Mesos奴隶; Mesos UI正在向左和向右报告FAILED任务。

Mesos UI,描绘失败的任务

编辑1

每个执行者所产生的Sandbox日志也是完全空的。

空的沙箱

编辑2

发现一些有趣的东西埋在奴隶日志中:

奴隶日志

兴趣点:

所有已启用的容器(mesos)都不能为提供的TaskInfo / ExecutorInfo消息创build一个容器。

看起来集装箱船不能运行,而且从我所看到的情况来看,它甚至没有把docker作为集装箱船。 我在这里configuration了部署Docker作业。 如果Mesos从站本身就是Docker容器,这是否会改变?

我有点超出了我的元素,无法find任何引用沿这些线。 有什么想法发生了什么?

什么是你的docker run命令的奴隶? 以下是其他参数有用的参数:

 --net host \ --pid host \ --privileged \ --env MESOS_CONTAINERIZERS=docker,mesos \ --env MESOS_EXECUTOR_REGISTRATION_TIMEOUT=5mins \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /sys:/sys:ro \ -v /usr/bin/docker:/usr/bin/docker:ro \ -v /lib64/libdevmapper.so.1.02:/lib/libdevmapper.so.1.02:ro \ -v /home/core/.dockercfg:/root/.dockercfg:ro \ 

另外请注意,不应该命名容器mesos-slave因为从服务器会在恢复时尝试删除所有以mesos-slave为前缀的容器。

仅供参考,Mesos使用docker --version命令查看是否可以使用docker Containerrizer。 尝试启动一个只运行docker的马拉松任务docker --version以查看在dockerized slave的环境中是否可以工作。