簡體   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