Di mana log daemon Docker?

344

Di mana log daemon Docker? Anehnya tidak dapat menemukan jawaban untuk ini melalui man, StackOverflow atau Docker Docs. Catatan Saya tidak meminta wadah buruh pelabuhan STDOUT, tetapi daemon log untuk pemecahan masalah komunikasi antara klien dan wadah melalui daemon / proxy.

pengguna2603634
sumber
6
Daftar resmi ada di sini: docs.docker.com/config/daemon/#read-the-logs
wisbucky
Anda harus memilih jawaban sebagai yang terkemuka, karena tampaknya sudah beberapa tahun.
Light.G

Jawaban:

601

Tergantung pada OS Anda. Berikut adalah beberapa lokasi, dengan perintah untuk beberapa Sistem Operasi:

  • Ubuntu (lama menggunakan pemula) - /var/log/upstart/docker.log
  • Ubuntu (baru menggunakan systemd) - sudo journalctl -fu docker.service
  • AMI Amazon Linux - /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
  • Red Hat Enterprise Linux Server - /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, sebagaimana disebutkan di sini .
Sabin
sumber
Jika Anda menggunakan driver syslog dalam mode daemon, ini juga tempat log STDOUT Anda.
Ganesh Hegde
Saya percaya bahwa 1.13pindah lokasi OSX, tetapi saya tidak dapat menemukan dokumentasi tentang itu.
mkobit
1
Tautan dari @Thomasleveil tidak lagi berfungsi. Saya yakin tautan yang setara ada di sini docs.docker.com/engine/reference/commandline/dockerd
Adam Mazzarella
docker-machine : Gunakan docker-machine ssh $host tail -f /var/lib/boot2docker/log/docker.log. (docker-machine versi 0.16.1, build cce350d7)
Claudio
94

Jika OS Anda menggunakan systemdmaka Anda dapat melihat log daemon buruh pelabuhan dengan:

sudo journalctl -fu docker.service
mixel
sumber
Ini menunjukkan output dari kontainer buruh pelabuhan, juga ... apakah ada cara untuk menyaring yang keluar untuk menunjukkan hanya dockerdlog?
docwhat
3
@TheDoctorApa, itu mungkin karena Anda telah journaldmenetapkan sebagai driver logging Anda. Dari github.com/docker/docker/issues/23339#issuecomment-224275072 , Anda dapat memfilter barang kontainer dan hanya menyimpan log daemon dengan menggunakan journalctl -fu docker _TRANSPORT=stdout + OBJECT_EXE=docker(berfungsi dengan baik di sini)
Ciro Costa
22

Menggunakan CentOS7, log tersedia menggunakan perintah journalctl -u docker. Menjawab dengan jelas, karena jawaban @ sabin mungkin akurat untuk versi CentOS yang lebih lama tetapi tidak benar untuk saya.

systemd memiliki sistem logging sendiri yang disebut jurnal. Log untuk daemon buruh pelabuhan dapat dilihat menggunakan journalctl -u docker

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

joedragons
sumber
13

Di lingkungan saya (buruh pelabuhan untuk mac 17.07), tidak ada file log di ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/log/d‌​ocker.log

Sebaliknya saya dapat menemukan file log seperti di bawah ini.

  1. Masukkan ke dalam VM.

    $ screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty
    atau
    $ screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty

  2. Periksa file log

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

SunghoMoon
sumber
11

Untuk Docker Mac Native (tanpa Boot2Docker atau mesin docker, menjalankan instalasi Docker Anda tanpa VirtualBox tambahan - yang saya sarankan di atas yang lain), semua jawaban tidak bekerja untuk saya . Tapi dokumen Docker untungnya datang untuk menyelamatkan.

Jika Anda ingin melihat log daemon buruh pelabuhan di commandline, cukup ketik:

syslog -k Sender Docker

Atau dari Mac OS Sierra on, Anda dapat menggunakan Mac Console App yang baru dirancang (jangan bingung di sini dengan App "Terminal", ikon App Console terlihat sangat mirip - saya menemukannya dengan Launchpad di bawah "Lainnya. . "). Ada sebuah artikel di sini yang menjelaskan penggunaan umum Aplikasi Konsol Mac OS Sierra baru, yang belum membuatnya menjadi dokumen Docker resmi.

Di dalam Aplikasi Konsol cukup pilih system.log dan ketik Dockerke dalam bilah pencarian. Itu dia. Sekarang Anda akan melihat semua log terkait Docker.

Jonashackt
sumber
9

Docker untuk Mac (Beta)

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

Lauri
sumber
7

Untuk Mac dengan Docker Toolbox, ssh ke VM dengan terlebih dahulu docker-machine ssh %VM-NAME%lalu periksa/var/log/docker.log

YongJiang Zhang
sumber
3

Anda juga dapat melihat log dengan perintah ini:

docker service ps --no-trunc {serviceName}
Taras Vaskiv
sumber
-1

Tambahkan cara untuk menemukan buruh pelabuhan log daemon di windows:

mencoba

Saat menggunakan mesin buruh pelabuhan di Windows dan Mac OSX, daemon berjalan di dalam mesin virtual.

Pertama, temukan mesin Docker Anda yang aktif.

mesin docker ls Temukan nama mesin docker aktif di bawah kolom NAME di output.

Anda dapat menyalin file log daemon buruh pelabuhan ke direktori lokal Anda untuk analisis:

docker-machine scp default: /var/log/docker.log ./ Dimana default adalah nama mesin docker aktif Anda.

Gabriel Wu
sumber