我将尝试将docker中的json日志导入到jq中进行处理。
如果我使用以下命令,则可以正常工作:
docker logs container_id 2>&1 | jq '.'
但是,如果我尝试追踪它,它会卡住(什么都不显示)。
docker logs -f container_id 2>&1 | jq '.'
单独使用尾部追踪命令是可行的:
docker logs -f container_id 2>&1
我在这里缺少什么?
--stream
选项,并使用streaming
过滤器来处理数据。 - Jeff Mercadojq
替换为cat
;您是否遇到了相同的问题?如果是这样,那么您的问题就是docker logs
在未写入TTY时缓冲其stdout(这是默认的libc行为,因此适用于许多应用程序!)。 - Charles Duffy