Docker LOGS Komutu
3 min read

Docker LOGS Komutu

Docker logs komutu, container'ların stdout ve stderr çıktılarını görüntüler.
Docker LOGS Komutu
Photo by Ishant Mishra / Unsplash

docker logs komutu, Docker container'larının çıktılarını (loglar) görüntülemek için kullanılan bir komuttur. Bu komut, container içinde çalışan uygulamanın stdout ve stderr çıktılarını görüntüler. Böylece container'ın ne yaptığını ve hangi hata mesajlarının oluştuğunu kolaylıkla  anlayabilirsiniz.

Örnek olarak, aşağıdaki komut ile container'ın loglarını görüntüleyebilirsiniz:

docker logs container_name

Bu komut, container içinde çalışan uygulamanın stdout ve stderr çıktılarını görüntüler. Örnek bir çıktı aşağıdaki gibi olabilir:

Listening on port 3000
Connected to the database

Ayrıca, docker logs komutunun bazı seçenekleri mevcuttur. Örneğin, -f seçeneği ile container'ın loglarını gerçek zamanlı olarak izleyebilirsiniz, -t seçeneği ile logların timestamp'i eklenir, -tail seçeneği ile istenilen sayıda loglar görüntülenebilir. Örnek olarak:

docker logs -f -t --tail 10 container_name

docker logs komutu container'ın loglarını görüntülerken, aynı zamanda bu logların formatını da kontrol etmenizi sağlar. Örneğin, --since seçeneği ile belirli bir zaman diliminden itibaren oluşan logları görüntüleyebilirsiniz, --until seçeneği ile belirli bir zaman dilimine kadar oluşan logları görüntüleyebilirsiniz. Örnek olarak:

docker logs --since "2022-12-01" --until "2022-12-31" container_name

Bu komut, container'ın "2022-12-01" ve "2022-12-31" arasında oluşan loglarını görüntüler.

Ayrıca, --filter seçeneği ile logları belirli bir düzeyde oluşanları filtreleyebilirsiniz. Örnek olarak, sadece warning ve error düzeyinde oluşan logları görüntülemek için:

docker logs --filter "level=warning" --filter "level=error" container_name

Filtre seçenekleri ile container'ın loglarını sadece belirli bir process ID'ye ait olanlarını filtreleyebilirsiniz. Örnek olarak, sadece process ID=1'e ait olan logları görüntülemek için:

docker logs --filter "pid=1" container_name

Üstelik, docker logs komutu ile container loglarını dosya olarak kaydetmeniz de mümkündür. Örneğin:

docker logs container_name > container.log

Bu komut container'ın loglarını container.log isimli bir dosyaya kaydeder.

docker logs komutu ile container'ın loglarını görüntülerken, bu logların hangi kaynaktan geldiğini de belirlemek mümkündür. Örneğin, --source seçeneği ile stdout veya stderr kaynaklarından gelen logları filtreleyebilirsiniz. Örnek olarak:

docker logs --source stderr container_name

Bu komut container'ın stderr kaynaklı loglarını görüntüler.

Diğer bir özellik, docker logs komutu ile container'ın loglarının formatını da kontrol etmeniz mümkündür. Örneğin, --timestamps seçeneği ile logların timestamp'lerini ekleyebilirsiniz. Örnek olarak:

docker logs --timestamps container_name

Bu komut container'ın loglarının timestamp'leri ile birlikte görüntüler.

--tail seçeneği ile ise en son oluşan belirli sayıda logları görüntüleyebilirsiniz. Örnek olarak:

docker logs --tail 20 container_name

Bu komut container'ın en son oluşan 20 logunu görüntüler.

--details seçeneği ile ise container'ın loglarının yanı sıra container'ın ID, name, image ve kaynak kullanımı gibi bilgileri de görüntüleyebilirsiniz. Örnek olarak:

docker logs --details container_name

Bu komut container'ın loglarının yanı sıra container'ın ID, name, image ve kaynak kullanımı gibi bilgileri de görüntüler.

Bu seçenekler ile container loglarının formatını daha anlamlı şekilde görüntüleyebilirsiniz.

Docker Logs Dosyası Nerede?

Docker, varsayılan olarak, tüm container'ların stdout ve stderr çıktılarını yakalar ve bunları JSON formatını kullanarak dosyalara yazar. Bu loglar varsayılan olarak /var/lib/docker dosya sistemi altındaki container'a özgü konumlarda depolanır.

/var/lib/docker/containers/<container_id>/<container_id>-json.log

Docker derslerine sıradaki yazı ile devam edebilirsiniz:

Docker CPU ve Bellek Kısıtlamalarını Kullanmak
Docker container’ların CPU ve bellek kullanımını kısıtlayarak kaynaklarınızı daha etkili kullanabilirsiniz.