从Docker容器login到macOS的系统日志/控制台?
我将我的Docker容器设置为将日志发送到CentOS 7上的主机日志(使用--log-driver syslog
)。 我想在macOS(塞拉利昂)复制这个。 但它似乎并没有出现在任何地方。
$ docker run --log-driver syslog -it busybox sh / # logger "Hello world!" / # exit
和:
$ sudo cat /var/log/system.log | grep "Hello world" Password: $
需要什么样的configuration才能使任何任何容器的Docker系统日志logging命令出现在macOS上的日志文件中?
如果我不configuration日志驱动程序,我可以查看这些types的默认系统日志logging。 但是Ruby的syslog实现必须以不同的方式logging。
$ 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)" $
这取决于你如何logging你的消息。
正如丹尼尔·沃尔什 ( Daniel Walsh)的 “ 更好地处理容器中日志logging的方法 ”所述:
标准Docker容器的一个大问题是,默认情况下,将消息写入syslog或直接写入日志的任何服务都将被丢弃。
除非消息被写入STDIN / STDERR,否则Docker不会logging任何日志。 在容器内部没有运行日志服务来捕获这些消息。
所以一个简单的回声应该在syslog中结束,如chentex/random-logger
图像所示。
从Docker for Mac /日志和故障排除 ,您可以直接检查您的docker run
后是否看到任何日志:
要在命令行查看Docker for Mac日志,请在terminal窗口或您喜欢的shell中键入此命令。
$ syslog -k Sender Docker
检查~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/log
。 系统日志驱动程序已添加到PR 11458中
- Docker rsyslog驱动程序在实际消息之前添加消息长度
- Kubernetes将JSON日志保存到带有转义引号的文件中。 为什么?
- 抑制Codeship服务的输出
- 图片名称,Docker-Compose中的Docker Syslog标签中的容器名称
- 如何在Bluemix上启用对容器的监视和日志logging?
- 通过docker日志查看cron输出,而不使用额外的文件
- Elastic Beanstalk单容器泊坞窗 – 使用awslogslogging驱动程序
- 将Docker容器日志configuration到特定文件的最简单方法
- 如何在kubernetes pod文件中configuration日志驱动程序?