Docker-如何使用syslog在主机上记录日志?

Pra*_*ngh 5 logging syslog docker

我希望将容器的日志保存到主机中每个容器的文件中。我阅读了有关通过日志记录驱动程序执行相同操作的信息。

由于我的主机运行ubuntu 14.04 rsyslog(默认情况下已运行),因此我想使用syslog

以下命令用于运行容器:

docker run -it --log-driver=syslog --log-opt syslog-address=udp://localhost:514 prashant23/ubuntu-java:sample-jdbc-project bash
Run Code Online (Sandbox Code Playgroud)

我没有任何错误地进入了容器。就这样?我怎么知道在哪里可以看到主机上的日志?我做对了吗?我不知道syslog。我是否还需要在容器上配置系统日志?有没有更好的方法来达到相同的目的。

我不知道该用什么syslog-address。从哪里可以获取此参数的值?我在某处读取默认值是udp://localhost:514

kst*_*aos 8

使用syslog驱动程序,您的 Docker 容器会将日志数据写入/var/log/syslog文件。您应该在该文件中找到您的容器日志。

syslog-address 仅当您使用外部系统日志服务器时才需要,这似乎不是您的情况。

使用默认驱动程序json-file,Docker 将在此路径中创建一个日志文件。

/var/lib/docker/containers/[container-id]/[container-id]-json.log

  • 感谢您的编辑。但这是默认行为。如果我正在使用 syslog 并且希望将日志保存到我的自定义位置,该怎么办?仅当您未使用任何日志记录驱动程序(默认)时,上述路径才有效,但如果您使用 syslog 驱动程序,则上述位置不存在。我通过使用 syslog 获取日志,只是我希望它位于每个容器的单独文件中,我希望创建日志的文件的路径和名称是可配置的。 (2认同)