Bir çok konteyner sistem kayıtları ve hatalarının çıktılarını oluşturur standart bir dosyaya yazmak yerine /dev/stdout ve /dev/stderr noktaları olarak,bu sayede “docker logs” komutu ile bu sistem kayıtlarını okuyabilirsiniz.
Bu loglara erişmek için komut işte şu şekilde :
$ docker logs [KONTEYNER_ID]
Bu konteynerların ID lerini nasıl bulacağız diyorsanız onun komutu şöyle :
$ docker ps
Peki bir şekilde bir debug yapıyor olabilirsiniz yani anlık logları aktif olarak görmek isteyebilirsiniz , bunun bir yolu var mı derseniz , işte onunda komutu bu :
$ docker logs --follow [KONTEYNER_ID]
ya da
$ docker logs -f [KONTEYNER_ID]
Default olarak yani standartta docker logs komutu size konteynerin çalışmaya başladığı andan itibaren var olan tüm kayıtları/logları gösterecektir. Uzun süredir aktif bir konteyner üzerinde çalışıyorsanız bu çok fazla satır demek. Bu kadar kayıtlar ilgilenmiyorsanıza ve sürekliyukarı aşşağı gidip gelmek istemiyorsanız, -ki -f komutu her satır yenilemesinde sizi en alta atacaktır; sizin ilgilendiğiniz son 100 satırı görmek isteyebilirsiniz. İşte bunu yapabilmek için ihtiyacınız olan komut ise şudur :
$ docker logs --follow --tail 100 [KONTEYNER_ID]
ya da
$ docker logs -f --tail 100 [KONTEYNER_ID]
peki son satırı takip etmek istiyorsanız o zaman 100 yerine 0 yazmanız kafi. Bu arada bende alışkanlıktan kullanmıyorum ama yukarıdaki komutun daha da kısa hali şöyle :
$ docker logs -f -n 100 [KONTEYNER_ID]
Dikkat ettiyseniz –tail yerine -n kullandım.
Son bir hatırlatma /dev/stdout ve /dev/stderr ları grep komutu ile filtreleyemezsiniz. Bunu yapabilmenin tek yolu komutu bir dosyaya yazmanız. 100 satırlık bir kayıtları dosyaya atmak için komut şöyle olmalı :
$ docker logs --tail 100 [KONTEYNER_ID] 2> ~/dosyaadi.log
Logun yani kaydın dosyaya yazması için 2 rakamını kullanmalısınız aksi halde ekrana basacaktır. Yani dosyanız oluşsa da içine veriyi atmayacaktır.
İyi hata ayıklamalar…