Linux下docker logs命令分页异常:使用less跳转至末尾的解决办法
问题原因
容器运行时,docker logs默认会持续输出新产生的日志(等效于--follow参数)。这种流式输出传给less时,less会检测到输入未终止,自动滚动到缓冲区末尾等待新内容,所以你执行命令后直接跳到了日志末尾。
而用&>写入临时文件时,docker logs输出完所有现有日志就终止进程,静态文件让less能从开头正常加载分页。
解决方法
只查看历史日志:禁用跟随模式,让
docker logs输出完现有日志就退出,配合less正常分页:docker logs <CONTAINER> --no-follow | less若日志带ANSI颜色输出,加
-R参数让less正确解析颜色:docker logs <CONTAINER> --no-follow | less -R先看历史再实时跟踪:先加载所有历史日志,按需切换到跟随模式:
docker logs <CONTAINER> | less -R在
less界面按g回到日志开头分页浏览;需要跟踪新日志时按F键进入跟随模式,按Ctrl+C可退出跟随回到分页状态。已进入末尾时快速回退:如果已经执行命令跳到了日志末尾,直接在
less里按g就能回到日志开头,进行正常分页操作。
内容的提问来源于stack exchange,提问作者phetherer
相关产品推荐
相关产品推荐

