方案 3
教程 - Docker 镜像
我们看到应用程序几乎立即出现故障:
图 1. 显示故障的任务日志
正如我们所学的,对于应用程序故障, 第一步是检查。
图 2. 空任务日志
很遗憾,它完全是空的。通常,我们至少会看到任务设置中的一些输出。这是特别奇怪的行为。
因此第 2 步是检查调度程序日志,— 在本例中是 Marathon:
$ dcos service log marathon
应该在响应中产生类似于以下输出的一些内容:
但是,这并没有说明任务失败的原因。那么接下来进入我们策略的 :使用以下命令检查 Mesos 代理节点日志:
看起来像无法找到特定的 Docker 镜像,可能因为它不存在。图像是否存在于指定位置(在本例中为 Dockerhub 中的 noimage:idonotexist
)? 如果不是,则必须更正位置或将文件移至指定位置。此外,指定的位置或文件名是否存在错误? 最后,检查容器镜像注册表是否可访问(尤其是在使用专用注册表时)。s
作为应用程序错误,我们再次查看任务日志,然后查看调度程序日志。
在这本例中,我们有一个 Docker 守护程序特定的问题。通过检查 Mesos 代理节点日志,可以发现许多此类问题。在某些情况下,我们需要深入挖掘,需要访问 Docker 守护程序日志。首先,通过ssh 进入主节点:
然后获取日志:
请注意,与前面的示例相比,此处使用的更复杂的模式用于检索 mesos-id
。此模式列出先前失败的任务以及正在运行的任务,而较早的模式仅列出正在运行的任务。