[英]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.