我正在使用docker logs -f mycontainer
来检查日志。如果我按mycontainer
然后docker rm -f mycontainer
重新启动docker run -d --name mycontainer
,我需要使用Ctrl-C
,然后重新运行docker logs
命令以获取日志。我想知道即使容器重启后我是否还有更好的方法来继续接收日志。
答案 0 :(得分:2)
正如其他评论者提到的那样,“rm”命令正在销毁你的容器,而不是重启它。
但要回答你的问题,你可以使用类似的东西:
watch -n 0 "docker logs mycontainer"
对于已停止的容器,docker logs命令不会继续运行,但您可以使用“watch”命令实现类似的效果。因为它不是Docker命令,所以它不关心容器是否正在运行。
如果您使用的是Mac,则可能无法观看。它可以使用pip安装。使用单线程bash脚本可以实现同样的目的,但我发现手表更加整洁。
答案 1 :(得分:0)
2件事
docker rm -f mycontainer
你没有停止你的容器,你正在杀死它,然后你开始另一个全新的
您可以使用docker stop mycontainer
并开始或只是docker restart mycontainer
来保存日志。
由于容器是无状态的,因此如果删除容器,则会丢失日志。在这种情况下,您必须使用卷来编写应用程序日志。它们将在主机上而不是容器中。