查看容器日志的方法一般是使用docker logs命令,下面介绍一下这个命令如何使用。
Usage: docker logs [OPTIONS] CONTAINER
Options:
--details 显示更多的信息
-f, --follow 跟踪实时日志
--since string 显示自某个timestamp之后的日志,或相对时间,如42m(即42分钟)
--tail string 从日志末尾显示多少行日志, 默认是all
-t, --timestamps 显示时间戳
--until string 显示自某个timestamp之前的日志,或相对时间,如42m(即42分钟)
查看某时间之后的日志
docker logs -t --since=2020-09-14T18:00:00 CONTAINER_ID
查看某事件段的日志
docker logs -t --since=2020-09-14T18:00:00 --until=2020-09-14T20:00:00 CONTAINER_ID
查看最近30分钟的日志
docker logs --since=30m CONTAINER_ID
显示最后100行,并跟踪日志输出
docker logs -f -t --tail=100 CONTAINER_ID
如果容器将日志记录到stderr,管道操作将无效,比如以下命令还是会输出所有的日志
docker logs CONTAINER_ID | grep 123
因为管道仅对stdout有效,所以像下面这样略作修改就可以了
docker logs CONTAINER_ID 2>&1 | grep 123
还有一种方式,但是写法比较麻烦
grep 123 `docker inspect --format={{.LogPath}} CONTAINER_ID`
如果正在使用docker-compose的话,可以直接使用docker-compose中的logs命令:
docker-compose logs CONTAINER_ID | grep 123