容器重启后 docker log -f

rya*_*yan 7 docker

我用来docker logs -f mycontainer检查日志。如果我那时重新启动mycontainer,我需要使用然后重新运行docker rm -f mycontainer命令来获取日志。我想知道是否有更好的方法让我即使在容器重新启动后也能继续接收日志。docker run -d --name mycontainerCtrl-Cdocker logs

Nau*_*aun 6

正如其他评论者所提到的,“rm”命令正在破坏您的容器,而不是重新启动它。

但要回答你的问题,你可以使用这样的东西:

watch -n 0 "docker logs mycontainer"
Run Code Online (Sandbox Code Playgroud)

docker log 命令不会针对已停止的容器继续运行,但您可以使用“watch”命令实现类似的效果。由于它不是 Docker 命令,因此它并不关心容器是否正在运行。

如果您使用的是 Mac,则可能没有手表。可以使用 pip 安装。使用单行 bash 脚本也可以实现同样的效果,但我发现 watch 更加简洁。


Syl*_*wit 5

2 件事

你没有docker rm -f mycontainer停止你的容器,你正在杀死它,然后你开始另一个全新的容器

您可以使用docker stop mycontainer并启动或只是docker restart mycontainer保存日志。

由于容器是无状态的,因此如果删除容器,您将丢失日志。在这种情况下,您必须使用一个卷来写入应用程序日志。它们将位于主机上而不是您的容器中。

  • 谢谢。我不知道“重新启动”命令。我一直像穴居人一样走走停停。哈哈 (4认同)