Docker LOGS Komutu
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: