2017-10-30 49 views
6

मैंने अपने डॉकर कंटेनर सेट को CentOS 7 (--log-driver syslog के साथ) होस्ट लॉग पर लॉग भेजने के लिए सेट किया है। मैं इसे मैकोज़ (सिएरा) पर दोहराना चाहता हूं। लेकिन यह प्रतीत होता है, कहीं भी दिखाई नहीं देता है।डॉकर कंटेनर से मैकोज़ में syslog/console पर लॉग इन करें?

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

और:

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

क्या विन्यास किसी भी डोकर प्रणाली लॉगिंग आदेश किसी भी मनमाने ढंग से कंटेनर MacOS पर एक लॉग फ़ाइल में प्रदर्शित करने के लिए के लिए यह संभव बनाने के लिए आवश्यक है?


यदि मैं लॉग-ड्राइवर को कॉन्फ़िगर नहीं करता हूं तो मैं इन प्रकार के डिफ़ॉल्ट सिस्टम लॉगिंग देख सकता हूं। लेकिन रुबी के सिसलॉग कार्यान्वयन को अलग-अलग लॉग इन करना होगा।

$ 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)" 
$ 
+1

में जोड़ा गया था, इसके लिए आपको संभवतः मोबी प्रोजेक्ट के आंतरिक को देखने की आवश्यकता होगी। डॉकर मैकोज़ पर नहीं चलता है, यह एक क्षणिक लिनक्स वीएम के अंदर चलता है जो मैकोज़ पर चलता है। तो कंटेनर को syslog पर लॉगिंग करना उन लॉग को वीएम पर भेजता है, मैकोज़ syslog डिमन नहीं। – BMitch

उत्तर

2

यह इस बात पर निर्भर करता है कि आप अपना संदेश कैसे लॉग कर रहे हैं।
Daniel Walsh द्वारा "Better ways of handling logging in containers" में उल्लेख किया है: मानक डोकर कंटेनर के साथ

एक बड़ी समस्या यह है कि किसी भी सेवा है कि लिखते संदेशों पत्रिका के syslog या सीधे करने के लिए डिफ़ॉल्ट रूप से गिरा दिया हो जाता है।
डॉकर कोई लॉग रिकॉर्ड नहीं करता है जब तक कि संदेश STDIN/STDERR को लिखे जाएं। इन संदेशों को पकड़ने के लिए कंटेनर के अंदर कोई लॉगिंग सेवा नहीं चल रही है।

तो chentex/random-logger छवि द्वारा सचित्र के रूप में एक सरल गूंज syslog में समाप्त होनी चाहिए।

Docker for Mac/Log and Troubleshooting से, अगर आप सीधे अपने के बाद किसी भी लॉग देखें कि क्या जांच कर सकते हैं अपने docker run:

आदेश पंक्ति पर मैक के लिए लॉग डोकर देखने के लिए, एक टर्मिनल विंडो या अपने पसंदीदा खोल में यह आदेश लिखें।

$ syslog -k Sender Docker 

चेक ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/log की सामग्री। Syslog ड्राइवर PR 11458

संबंधित मुद्दे