0

我的 docker 服务日志通常工作正常(按时间顺序打印),但是在执行后:

docker service update --force --image myimageregistry:mytag myservice 

如果我请求日志:

docker service logs myservice

然后我得到一些日志,但是很多行丢失了,最后一行与最近的操作不对应。似乎旧日志写在新日志之上,因此最终显示非常混乱。

此外,如果我在更新期间保持另一个终端打开以下日志,则该终端中的日志很好,但如果我之后请求它们,问题是相同的。

4

1 回答 1

0

当您请求服务日志docker service logs $service时,docker 会从仍然通过任务链接到服务、运行或停止的所有容器中流式传输所有日志。Docker 不会尝试以任何方式清理这些日志,因此多个任务日志最终都可能交错并以错误的顺序结束。

如果您特别想要仅当前进程的日志,则需要首先枚举与服务关联的任务,然后列出其中一项任务的日志:

$ docker service ps traefik_traefik
ID             NAME                                            IMAGE          NODE      DESIRED STATE   CURRENT STATE           ERROR                              PORTS
pwabbqdyucc3   traefik_traefik.n6fz7h5d122hads1rqwmmhgmw       traefik:v2.3   ...

$ docker service logs pwabb
...
于 2021-11-11T16:34:29.593 回答