如何实现仅查看运行中Docker Swarm容器的服务日志?
解决Docker Service日志只显示运行中容器的问题
可以通过docker service logs的过滤参数实现只显示运行中容器的日志,同时优化日志排序问题:
过滤已终止容器日志:使用
--filter status=running参数,直接过滤掉已退出(exited)的容器日志,命令示例:docker service logs --filter status=running my_service这个参数从Docker 17.06版本开始支持,确保你的Docker版本符合要求。
优化日志排序:如果需要严格按时间顺序查看日志,加上
--timestamps参数显示标准时间戳,再结合系统的sort命令做文本排序(ISO格式的时间戳可以保证排序准确性):docker service logs --filter status=running --timestamps my_service | sort要是只需要跟踪最新日志,加上
--follow(或-f)参数实时输出:docker service logs -f --filter status=running my_service
针对你执行docker service update --force my_service后的场景,用上面带--filter status=running的命令,就能只看到新启动的运行中容器日志,不会再和旧的已终止容器日志混排。
内容的提问来源于stack exchange,提问作者schwart
相关产品推荐
相关产品推荐

