码头工人如何找出服务无法启动的原因

爱马仕:

我经常遇到问题,因为我在带有多个节点的docker swarm上部署的服务无法启动,并且没有生成可以查看的日志 docker service logs {serviceName}

服务无法启动的原因有很多,例如

  • 无法从注册表下载图像
  • 无法实现的约束

我很难找出为什么容器无法启动。我找到了docker service ps {serviceName}列出一个或多个服务的任务以及一条简短错误消息(如果有错误)的命令。但是,当我尝试使用检查任务时docker service logs {taskId}(应该显示任务的日志),我得到了Error response from daemon: task 3lkgo8t2sn7k not found

谁能帮我得到完整的错误消息,为什么服务无法启动?

爱马仕:

我找到了解决这个问题的简便方法。

docker service ps --no-trunc {serviceName}

这将显示下载映像,安装nfs卷等错误。

----------------------更新

并非所有错误都可以通过上述方式找到。另一个有用的工具是查看docker deamon日志,可以按照以下stackoverflow上的说明进行以下操作

journalctl -u docker.service | tail -n 50 

这取决于您的操作系统。以下是一些位置,以及一些操作系统的命令:

  • Ubuntu(使用upstart的旧版本)- /var/log/upstart/docker.log
  • Ubuntu(使用systemd的新功能)- journalctl -u docker.service
  • Boot2Docker- /var/log/docker.log
  • Debian GNU / Linux- /var/log/daemon.log
  • CentOS的- /var/log/daemon.log | grep docker
  • CoreOS- journalctl -u docker.service
  • 软呢帽- journalctl -u docker.service
  • 红帽企业Linux服务器- /var/log/messages | grep docker
  • OpenSuSE- journalctl -u docker.service
  • OSX- ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/log/d‌​ocker.log
  • 视窗- Get-EventLog -LogName Application -Source Docker -After (Get-Date).AddMinutes(-5) | Sort-Object Time提到这里

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章