我 docker 输出日志 stdout stderr,可以使用以下命令查看:
docker logs -f $LOGS_CONTAINER_ID
我还添加了“sed”,它将容器 ID 放在每一行上:
docker logs -f $LOGS_CONTAINER_ID | sed "s/^/$LOGS_CONTAINER_ID /"
如果我运行它,我会得到类似的信息:
container112 error 10:20:10 problem
container112 info 10:20:09 not problem
container112 error 10:20:01 problem
其中“container112”是 $LOGS_CONTAINER_ID。
到目前为止,一切都很好。现在我想将上面的命令输出到文件(log.out)中,所以我写了以下命令:
docker logs -f $LOGS_CONTAINER_ID | sed "s/^/$LOGS_CONTAINER_ID /" >> log.out
发生的情况是它将日志写入 log.out,但它没有获取新日志(如果我打开一个新会话并运行tail -f log.out
,我不会得到输出)。所以我也尝试过:
tail -f $(docker logs -f $LOGS_CONTAINER_ID | sed "s/^/$LOGS_CONTAINER_ID /") >> log.out
但它也不起作用。问题是什么?
答案1
这有帮助吗?
docker logs $CONTAINERID 2>&1 | cat > logfile.log