บันทึก Docker daemon อยู่ที่ไหน แปลกไม่สามารถหาคำตอบนี้ผ่านคน, StackOverflow หรือเอกสารนักเทียบท่า หมายเหตุฉันไม่ได้ขอให้ docker container STDOUT แต่บันทึก daemon สำหรับการแก้ไขปัญหาการสื่อสารระหว่างไคลเอนต์และ container ผ่าน daemon / proxy
บันทึก Docker daemon อยู่ที่ไหน แปลกไม่สามารถหาคำตอบนี้ผ่านคน, StackOverflow หรือเอกสารนักเทียบท่า หมายเหตุฉันไม่ได้ขอให้ docker container STDOUT แต่บันทึก daemon สำหรับการแก้ไขปัญหาการสื่อสารระหว่างไคลเอนต์และ container ผ่าน daemon / proxy
คำตอบ:
ขึ้นอยู่กับระบบปฏิบัติการของคุณ นี่คือตำแหน่งไม่กี่แห่งที่มีคำสั่งสำหรับระบบปฏิบัติการบางระบบ
/var/log/upstart/docker.log
sudo journalctl -fu docker.service
/var/log/docker
/var/log/docker.log
/var/log/daemon.log
/var/log/daemon.log | grep docker
journalctl -u docker.service
journalctl -u docker.service
/var/log/messages | grep docker
journalctl -u docker.service
~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/log/docker.log
Get-EventLog -LogName Application -Source Docker -After (Get-Date).AddMinutes(-5) | Sort-Object Time
เป็นที่กล่าวถึงที่นี่1.13
ย้ายตำแหน่ง OSX แล้ว แต่ไม่พบเอกสารใด ๆ
docker-machine ssh $host tail -f /var/lib/boot2docker/log/docker.log
ใช้ (นักเทียบท่าเครื่องจักรเวอร์ชัน 0.16.1, สร้าง cce350d7)
หากระบบปฏิบัติการของคุณใช้งานอยู่systemd
คุณสามารถดูบันทึกภูตนักเทียบท่าด้วย:
sudo journalctl -fu docker.service
dockerd
บันทึกหรือไม่
journald
ตั้งค่าเป็นไดรเวอร์การบันทึกของคุณ จากgithub.com/docker/docker/issues/23339#issuecomment-224275072คุณสามารถกรองสิ่งที่บรรจุออกและเก็บบันทึก daemon เท่านั้นโดยใช้journalctl -fu docker _TRANSPORT=stdout + OBJECT_EXE=docker
( ใช้งานได้ดีที่นี่)
ใช้ CentOS7 journalctl -u docker
บันทึกที่มีอยู่ใช้คำสั่ง ตอบอย่างชัดเจนเนื่องจากคำตอบของ @ sabin อาจจะแม่นยำสำหรับ CentOS รุ่นเก่า แต่ก็ไม่เป็นความจริงสำหรับฉัน
systemd มีระบบการบันทึกของตัวเองที่เรียกว่าวารสาร บันทึกสำหรับ docker daemon สามารถดูได้โดย journalctl -u docker
ในสภาพแวดล้อมของฉัน (นักเทียบท่าสำหรับ mac 17.07) ไม่มีไฟล์บันทึกที่ ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/log/docker.log
แต่ฉันสามารถหาไฟล์บันทึกได้ดังนี้
เข้าสู่ VM
$ screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty
หรือ
$ screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty
ตรวจสอบไฟล์บันทึก
/ # tail -f /var/log/docker.log
สำหรับนักเทียบท่า 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
ลงในแถบค้นหา แค่นั้นแหละ. ตอนนี้คุณควรเห็นบันทึกที่เกี่ยวข้องกับนักเทียบท่าทั้งหมด
นักเทียบท่าสำหรับ Mac (เบต้า)
~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/log/docker.log
สำหรับ Mac ที่มี Docker Toolbox ให้ ssh เข้าไปใน VM ก่อนด้วยdocker-machine ssh %VM-NAME%
จากนั้นตรวจสอบ/var/log/docker.log
ตำแหน่งของบันทึกนักเทียบท่าเปลี่ยนไปสำหรับ Mac OSX เป็น ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/console-ring
นอกจากนี้คุณสามารถดูบันทึกโดยคำสั่งนี้:
docker service ps --no-trunc {serviceName}
เพิ่มวิธีในการค้นหาบันทึก docker daemon ใน windows:
เมื่อใช้เครื่องเทียบท่าบน Windows และ Mac OSX daemon จะทำงานภายในเครื่องเสมือน
ก่อนอื่นให้ค้นหาเครื่อง Docker ที่ใช้งานอยู่
เครื่องนักเทียบท่า ls ค้นหาชื่อของเครื่องนักเทียบท่าที่ใช้งานอยู่ภายใต้คอลัมน์ NAME ในเอาต์พุต
คุณสามารถคัดลอกไฟล์บันทึก docker daemon ไปยังไดเรกทอรีท้องถิ่นของคุณเพื่อทำการวิเคราะห์:
scp-docker-machine เป็นค่าเริ่มต้น: /var/log/docker.log ./ โดยค่าเริ่มต้นคือชื่อของเครื่อง docker ที่ใช้งานอยู่ของคุณ