当前位置: 首页 > 知识库问答 >
问题:

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

龚睿
2023-03-14

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

服务无法启动有许多可能的原因,例如

  • 无法从注册表下载图像
  • 无法满足的约束

我很难弄清楚为什么集装箱不能启动。我找到了命令docker-serviceps{serviceName},它列出了一个或多个服务的任务和一条简短的错误消息(如果有错误)。但是,当我尝试使用docker service logs{taskId}(它应该显示任务的日志)检查任务时,我从守护进程得到错误响应:task 3lkgo8t2sn7k not found

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

共有2个答案

越嘉树
2023-03-14

我一直在使用的另一个技巧来自这篇文章。我被卡住了,这个技巧让我走得更远了:

docker run --network my-network -it --rm --entrypoint bash my-service

问题是,当我以这种方式运行它时,我可以启动服务并与群中的其他服务进行交互(通过外部覆盖网络)。但是,当我尝试使用 Docker Compose 启动所有三个服务时,上述服务无法启动。所以我仍然被困住了,但比以前稍微近了一点。

我也经常grepsyslog,这有时会揭示一些金块:

less /var/log/syslog | grep docker
less /var/log/syslog | grep error

最后,我发现了一个有时有用的窍门:

https://faun.pub/debug-docker-swarm-services-eec20fe3d13e

拓拔麒
2023-03-14

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

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)-Journal alctl-udocker.service
  • Boot2Docker-/var/log/docker.log
  • Debian GNU/Linux-/var/log/daemon.log
  • CentOS-/var/log/daemon.log|grep docker
  • CoreOS-Journal alctl-udocker.service
  • Red Hat EnterpriseLinux服务器-/var/log/message|grep docker
  • OSX-~/库/容器/com.docker.docker/Data/com.docker.driver.amd64-linux/log/docker.log
  • Windows-Get-EventLog-LogName Application-Source Docker-After(Get-Date)。地址分钟(-5)|排序对象时间,如这里所述。
 类似资料:
  • 问题内容: 免责声明: 我有 非常 与Java的经验。 之前,我们在Ant构建过程中使用了Jetty 6的包装版本来处理按需静态内容(JS,CSS,图像,HTML),因此我们可以在HTTP托管环境下使用PhantomJS运行单元测试。 但是,Jetty现在使用的是版本8.1.3 , 我们不再需要这种包装(这解决了一个现在尚无定论的不同问题),因此我想更新为直接使用Jetty 8.1.3。 首先,我

  • 问题内容: 我正在使用Maven Jetty插件,如果任何Bean失败,有没有一种方法可以防止服务器启动或关闭(例如,使用maven-jetty-plugin)? 这是一个例子: 我想关闭服务器。我知道有一种方法涉及在每个bean中编码destroy方法,但是我想为任何bean提供全局的东西。 问题答案: 要完成这项任务并不容易。从码头的源代码中找到所需的信息需要花费数小时的辛苦工作。 这是与我的

  • 问题内容: 码头工人给我一个困难时期。我按照以下说明进行操作,以便在运行由strato.de托管的Ubuntu 14.04的虚拟服务器上安装docker。 执行此行直接将我带入此错误消息: 安装完成后,我安装了上述两个软件包。现在我的问题是我无法让docker运行。 结果是: 结果是 和 结果是 有人对缺少哪些依赖项有任何线索吗?还有什么可能出问题了?码头工人是否提供任何日志? 我正在来回寻找解决

  • 当收到来自服务器的数据报文时,显示错误日志:

  • 我有一个spring boot可执行罐,装在数字海洋水滴中。我可以使用现在我想让我作为一个服务运行。 我已经创建了文件/etc/systemd/system/myapp。用这些内容服务 然后使其在系统启动时启动 我正在尝试启动服务 但是我得到了这个错误 无法启动myapp.service:未知单位:myapp.service详情请参阅系统日志和'systemctl statusmyapp.serv

  • 好吧,这就是问题所在。我做,但我没有从或获得新的日志消息。 舱单: null 活动代码: 我试过什么: 将所有“cont”更改为“this” StartService(新意图(cont,FlashService.class)); null 更新: 完整活动代码: