繁体   English   中英

从Docker容器登录macOS中的syslog / console?

[英]Log to syslog / console in macOS from Docker container?

我将Docker容器设置为将日志发送到CentOS 7上的主机日志(使用--log-driver syslog )。 我想在macOS(Sierra)上复制这个。 但它似乎没有出现在任何地方。

$ docker run --log-driver syslog -it busybox sh
/ # logger "Hello world!"
/ # exit

和:

$ sudo cat /var/log/system.log | grep "Hello world"
Password:
$

什么配置是必要的,以使任何容器的任何Docker系统日志记录命令都可以出现在macOS上的日志文件中?


如果我不配置日志驱动程序,我可以查看这些类型的默认系统日志记录。 但Ruby的syslog实现必须以不同方式记录。

$ docker run --log-driver syslog -it centos /bin/bash
# yum install ruby -y
# ruby -e "require 'syslog/logger'; log = Syslog::Logger.new 'my_program'; log.info 'this line will be logged via syslog(3)'"
# exit
$ sudo tail -n 10000 /var/log/system.log | grep "syslog(3)"
$ 

这取决于您如何记录您的消息。
正如Daniel Walsh在“ 处理容器登录的更好方法 ”中所提到的:

标准docker容器的一个大问题是,默认情况下,任何将消息写入syslog或直接写入日志的服务都会被删除。
除非将消息写入STDIN / STDERR,否则Docker不会记录任何日志。 容器内部没有运行日志记录服务来捕获这些消息。

所以一个简单的echo最终应该在syslog中,如chentex/random-logger图像所示。

Docker for Mac /日志和故障排除 ,您可以直接检查您的docker run后是否看到任何日志:

要在命令行中查看Docker for Mac日志,请在终端窗口或您喜欢的shell中键入此命令。

$ syslog -k Sender Docker

检查~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/log PR 11458中添加了Syslog驱动程序

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM