如何为docker容器

时间:2017-09-02 14:03:09

标签: docker logging grep

我有容器,在日志中有时会写关键字对我来说很重要,我想在终端中用颜色突出显示这个词,但重要的是仍然可以实时查看所有内容日志(--follow)。我刚试过命令

docker logs -f my_app --tail=100 | grep --color -E '^myWord'

但没有工作。

所以有某种方法可以做到这一点吗?

4 个答案:

答案 0 :(得分:3)

试试这个。

docker logs -f my_app --tail=100 | grep --color=always -E '^myWord'

请注意“--color = 始终”参数。

另一种选择是使用https://github.com/jlinoff/colorize之类的东西。我写它是为了专门解决这样的情况。例如,它可以为每个模式指定不同的颜色(有关详细信息,请参阅帮助)。

以下是如何将其用于您的案例的示例。

$ curl -L https://github.com/jlinoff/colorize/releases/download/v0.8.1/colorize-linux-amd64 --out colorize
$ chmod a+x colorize
$ ./colorize -h
$ docker logs -f my_app --tail=100 | ./colorize '^myWord'
$ # really make it standout.
$ docker logs -f my_app --tail=100 | ./colorize -c red+greenB+bold '^myWord'

答案 1 :(得分:2)

尝试

docker service logs -f nameOfContainer | grcat conf.dockerinfo

所有颜色配置文件都位于/usr/share/grc

grc => https://github.com/garabik/grc

答案 2 :(得分:1)

我使用 ccze 。正如@aimless所说, grc 也是很好的实用程序。通过sudo apt install ccze可以轻松安装类似debian / ubuntu的操作系统

但是,如果要给stderr着色,则需要将stderr输出重定向到stdout。例如:

docker logs -f my-app 2>&1 | ccze -m ansi

arg -m ansi可帮助您正常滚动输出

答案 3 :(得分:0)

尝试grc。按照说明安装并只管道日志输出:

docker logs -app | grc