บันทึก Docker daemon อยู่ที่ไหน


344

บันทึก Docker daemon อยู่ที่ไหน แปลกไม่สามารถหาคำตอบนี้ผ่านคน, StackOverflow หรือเอกสารนักเทียบท่า หมายเหตุฉันไม่ได้ขอให้ docker container STDOUT แต่บันทึก daemon สำหรับการแก้ไขปัญหาการสื่อสารระหว่างไคลเอนต์และ container ผ่าน daemon / proxy


6
รายการอย่างเป็นทางการอยู่ที่นี่: docs.docker.com/config/daemon/#read-the-logs
wisbucky

คุณควรเลือกคำตอบว่าเป็นคำนำหน้าเพราะมันดูเหมือนว่าหลายปีแล้ว
Light.G

คำตอบ:


601

ขึ้นอยู่กับระบบปฏิบัติการของคุณ นี่คือตำแหน่งไม่กี่แห่งที่มีคำสั่งสำหรับระบบปฏิบัติการบางระบบ

  • Ubuntu (เก่าโดยใช้คนธรรมดา) - /var/log/upstart/docker.log
  • Ubuntu (ใหม่โดยใช้ systemd) - sudo journalctl -fu docker.service
  • Amazon Linux AMI - /var/log/docker
  • Boot2Docker - /var/log/docker.log
  • Debian GNU / Linux - /var/log/daemon.log
  • CentOS - /var/log/daemon.log | grep docker
  • CoreOS - journalctl -u docker.service
  • Fedora - journalctl -u docker.service
  • เซิร์ฟเวอร์ Linux Red Hat Enterprise - /var/log/messages | grep docker
  • OpenSuSE - journalctl -u docker.service
  • OSX - ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/log/d‌​ocker.log
  • Windows - Get-EventLog -LogName Application -Source Docker -After (Get-Date).AddMinutes(-5) | Sort-Object Timeเป็นที่กล่าวถึงที่นี่

หากคุณใช้ไดรเวอร์ syslog ในโหมด daemon นี่เป็นที่ที่ STDOUT บันทึกของคุณเป็นไปด้วย
Ganesh Hegde

ฉันเชื่อว่า1.13ย้ายตำแหน่ง OSX แล้ว แต่ไม่พบเอกสารใด ๆ
mkobit

1
ลิงก์จาก @Thomasleveil ไม่ทำงานอีกต่อไป ฉันเชื่อว่าลิงก์ที่เทียบเท่าจะอยู่ที่นี่docs.docker.com/engine/reference/commandline/dockerd
Adam Mazzarella

นักเทียบท่าเครื่อง : docker-machine ssh $host tail -f /var/lib/boot2docker/log/docker.logใช้ (นักเทียบท่าเครื่องจักรเวอร์ชัน 0.16.1, สร้าง cce350d7)
Claudio

94

หากระบบปฏิบัติการของคุณใช้งานอยู่systemdคุณสามารถดูบันทึกภูตนักเทียบท่าด้วย:

sudo journalctl -fu docker.service

นี่แสดงผลลัพธ์ของคอนเทนเนอร์ docker ด้วย ... มีวิธีกรองสิ่งเหล่านั้นเพื่อแสดงเฉพาะdockerdบันทึกหรือไม่
docwhat

3
@TheDoctorWhat อาจเป็นเพราะคุณได้journaldตั้งค่าเป็นไดรเวอร์การบันทึกของคุณ จากgithub.com/docker/docker/issues/23339#issuecomment-224275072คุณสามารถกรองสิ่งที่บรรจุออกและเก็บบันทึก daemon เท่านั้นโดยใช้journalctl -fu docker _TRANSPORT=stdout + OBJECT_EXE=docker( ใช้งานได้ดีที่นี่)
Ciro Costa

22

ใช้ CentOS7 journalctl -u dockerบันทึกที่มีอยู่ใช้คำสั่ง ตอบอย่างชัดเจนเนื่องจากคำตอบของ @ sabin อาจจะแม่นยำสำหรับ CentOS รุ่นเก่า แต่ก็ไม่เป็นความจริงสำหรับฉัน

systemd มีระบบการบันทึกของตัวเองที่เรียกว่าวารสาร บันทึกสำหรับ docker daemon สามารถดูได้โดย journalctl -u docker

Ref: https://docs.docker.com/engine/admin/configuring/


13

ในสภาพแวดล้อมของฉัน (นักเทียบท่าสำหรับ mac 17.07) ไม่มีไฟล์บันทึกที่ ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/log/d‌​ocker.log

แต่ฉันสามารถหาไฟล์บันทึกได้ดังนี้

  1. เข้าสู่ VM

    $ screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty
    หรือ
    $ screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty

  2. ตรวจสอบไฟล์บันทึก

    / # tail -f /var/log/docker.log


11

สำหรับนักเทียบท่า Mac พื้นเมือง (ไม่ Boot2Docker หรือนักเทียบท่าเครื่องทำงานติดตั้งหางของคุณโดยไม่ VirtualBox พิเศษ - ที่ฉันจะแนะนำมากกว่าคนอื่น ๆ ) คำตอบทั้งหมดไม่อนุญาตทำงานสำหรับฉัน แต่นักเทียบท่าเอกสารโชคดีที่เข้ามาช่วย

หากคุณต้องการดู docker daemon เข้าสู่ระบบใน commandline เพียงพิมพ์:

syslog -k Sender Docker

อีกทางเลือกหนึ่งจาก Mac OS Sierra คุณสามารถใช้Mac Console App ที่ออกแบบใหม่ได้ (อย่าสับสนกับ App "Terminal" ไอคอน Console App ดูคล้ายกันมาก - ฉันพบ Launchpad ด้านล่าง "อื่น ๆ . ") มีบทความอยู่ที่นี่ซึ่งอธิบายการใช้งานทั่วไปของ Mac OS Sierra Console App ใหม่ซึ่งยังไม่ได้ทำให้เป็น Docker docs อย่างเป็นทางการ

ภายในแอพคอนโซลเพียงเลือกsystem.logและพิมพ์Dockerลงในแถบค้นหา แค่นั้นแหละ. ตอนนี้คุณควรเห็นบันทึกที่เกี่ยวข้องกับนักเทียบท่าทั้งหมด


9

นักเทียบท่าสำหรับ Mac (เบต้า)

~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/log/d‌​ocker.log


7

สำหรับ Mac ที่มี Docker Toolbox ให้ ssh เข้าไปใน VM ก่อนด้วยdocker-machine ssh %VM-NAME%จากนั้นตรวจสอบ/var/log/docker.log




-1

เพิ่มวิธีในการค้นหาบันทึก docker daemon ใน windows:

ลอง

เมื่อใช้เครื่องเทียบท่าบน Windows และ Mac OSX daemon จะทำงานภายในเครื่องเสมือน

ก่อนอื่นให้ค้นหาเครื่อง Docker ที่ใช้งานอยู่

เครื่องนักเทียบท่า ls ค้นหาชื่อของเครื่องนักเทียบท่าที่ใช้งานอยู่ภายใต้คอลัมน์ NAME ในเอาต์พุต

คุณสามารถคัดลอกไฟล์บันทึก docker daemon ไปยังไดเรกทอรีท้องถิ่นของคุณเพื่อทำการวิเคราะห์:

scp-docker-machine เป็นค่าเริ่มต้น: /var/log/docker.log ./ โดยค่าเริ่มต้นคือชื่อของเครื่อง docker ที่ใช้งานอยู่ของคุณ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.