如何使用journald驱动程序从Docker获取日志?

如何使用journald驱动程序从Docker获取日志?

OpenSuse Tumbleweed + Docker 17.04。我使用以下命令创建了 /etc/docker/daemon.json:

{
    "log-driver": "journald",
    "log-opts": {
            "labels": "my_test",
            "env": "os,customer"
    }
}

然后我启动了 docker daemon: systemctl start docker。检查它:sudo docker info|grep Logg并看到journald当前的默认驱动程序。还给sudo docker inspect -f '{{.HostConfig.LogConfig.Type}}' MY-CONTAINER-ID我看了journald一遍。 Docker 运行为

sudo docker run -ti -v /sys/fs/cgroup:/sys/fs/cgroup --tmpfs /run/dbus --tmpfs /run/lock --cap-add=ALL MY-CONTAINER

然后我就用 SH 编辑了它。在 Docker 中,我使用以下命令创建了几条日志消息:

logger XXX
logger -p local0.notice XXX
# etc...

我在 Docker 日志中看到这些消息journalctl -n ...。我想我也会在容器(“主机操作系统”)中找到这些日志消息:什么journalctl -n ...也没有。与docker logs MY-CONTAINER-ID-什么也没有。我想将消息从 Docker 记录到容器(“主机”)日志中。配置看起来正确,但缺少日志消息。有人可以帮助我 - OpenSuse 上的 Docker/我的配置有什么问题吗?

答案1

docker Journald 驱动程序捕获容器进程的 stdout 和 stderr。

另一方面,记录器命令将消息发送到/dev/log.

编辑

这样做会很好logger -s

相关内容