2016-04-16 6 views
14

क्या कोई तरीका है कि मैं बाहर निकलने वाले कंटेनर का लॉग देख सकता हूं?डॉकर एक बाहर कंटेनर के लॉग को देखें

मैं docker ps -a का उपयोग कर बाहर कंटेनर का कंटेनर आईडी प्राप्त कर सकता हूं लेकिन मैं जानना चाहता हूं कि यह कब चल रहा था।

+0

की संभावित डुप्लिकेट जा रही है [जहां एक कंटेनर से लॉग के साथ एक लॉग फ़ाइल है?] (Https://stackoverflow.com/questions/33017329/जहां-एक-लॉग-फ़ाइल-साथ-लॉग-से-ए-कंटेनर है) – icyerasor

उत्तर

18

docker logs का उपयोग करें। यह भी बंद कर दिया कंटेनरों के लिए काम करता है और पूरे STDOUT कब्जा और STDERR कंटेनर के मुख्य प्रक्रिया की धाराओं:

$ docker run -d --name test debian echo "Hello World" 
02a279c37d5533ecde76976d7f9d1ca986b5e3ec03fac31a38e3dbed5ea65def 

$ docker ps -a 
CONTAINER ID IMAGE  COMMAND  CREATED    STATUS      PORTS    NAMES 
49daa9d41a24 debian "echo test" 2 minutes ago  Exited (0) 2 minutes ago      test 

$ docker logs -t test 
2016-04-16T15:47:58.988748693Z Hello World 
4

पिछले पचास लाइनों के लिए docker logs <container id> | tail -n 50 - उपयोगी है जब आपके कंटेनर एक लंबे समय से चल रहा है।

+1

'डॉकर लॉग <कंटेनर आईडी> --टेल = 50' चाल है – Whitefret

0

सीधे भी कम समय में एक से बाहर निकल गया कंटेनर के लॉगफ़ाइल, फ़ाइल के अंत तक स्क्रॉल देखने के लिए, मैं का उपयोग करें: ./viewLogs.sh CONTAINERNAME

इस विधि है

docker inspect $1 | grep 'LogPath' | sed -n "s/^.*\(\/var.*\)\",$/\1/p" | xargs sudo less +G 

रन के रूप में docker logs आधारित दृष्टिकोण से लाभ, स्ट्रीम की बजाय फ़ाइल सीधे खोला जाता है।

sudo, के लिए आवश्यक है के रूप में LogPath/फ़ाइल आमतौर पर जड़ के स्वामित्व वाली

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