互联网服务Docker

如何让Docker容器长久驻留Mesos-Slave?

ZooKeeper+Mesos+Marathon+DockerDocker容器如何长久在Mesos上运行,比如容器上配置了bind服务,对外提供服务。显示全部
ZooKeeper+Mesos+Marathon+Docker

Docker容器如何长久在Mesos上运行,比如容器上配置了bind服务,对外提供服务。收起
参与3

返回大力的回答

大力大力软件架构设计师携程

首先明确一件事情:

你想让docker容器变成持续运行的,必须执行一个命令让它hang在那里,比如你用到的ping,或者tail -f,或者nginx的非daemon(nginx-g daemon off;)方式。

所以这个根本不是Marathon的问题,而是你没有用明白Docker,抛开Marathon,你本地执行docker run centos sleep 50过50秒也自动退出容器。

你应该先找到让你的容器hang在那里的方式,再去发布到Marathon上。

不会写的话可以参考官方的镜像学习,比如nginx(重点是CMD里的那个-g daemon off;)

其次,Marathon分不太清楚你是怎么退出的:

底层的Mesos会启动一个shell,执行docker wait XXXX判断容器是否退出,所以这块你要注意,不要用exit code一类作为正常/异常退出的条件,Mesos根本不关心这个,只要不是它自己kill的,都认为是出问题了,并通知Marathon做二次调度,结果就是你看到的那一堆Exit的容器了。

互联网服务 · 2015-10-19
浏览1752

回答者

大力
软件架构设计师携程
擅长领域: 云计算私有云云管平台

大力 最近回答过的问题

回答状态

  • 发布时间:2015-10-19
  • 关注会员:2 人
  • 回答浏览:1752
  • X社区推广