docker logs无法查找字符串

问题

执行以下命令没有在docker logs的结果中查找字符串,而是会输出了所有的日志

docker logs nginx | grep 127

分析

这是因为管道符仅对stdout有效,如果容器将日志记录到stderr,这种情况就会发生。

解决方法

像下面这样写,把stderr重定向到stdout中:

docker logs nginx 2>&1 | grep 127

还有一种方式,但是写法比较麻烦

grep 127 `docker inspect --format={{.LogPath}} nginx`

如果正在使用docker-compose的话,可以直接使用docker-compose中的logs命令:

docker-compose logs nginx | grep 127

你可能感兴趣的:(docker,docker,grep)