Çalışan bir konteynerdeki günlükler nasıl görüntülenir?
sobes.tech yapay zeka
AI'dan gelen yanıt
# Tüm konteyner loglarını görüntüle
docker logs <container_id_or_name>
# Son 100 satır logu görüntüle
docker logs --tail 100 <container_id_or_name>
# Konteyner başlatıldığından beri logları görüntüle
docker logs --follow <container_id_or_name>
# Belirli bir zamandan itibaren logları görüntüle
# Zaman formatı: RFC3339 (YYYY-MM-DDTHH:MM:SSZ)
docker logs --since 2023-10-27T10:00:00Z <container_id_or_name>
# Belirli bir zaman aralığındaki logları görüntüle
docker logs --since 2023-10-27T10:00:00Z --until 2023-10-27T11:00:00Z <container_id_or_name>
# Logları dosyaya kaydet
docker logs <container_id_or_name> > container_logs.txt
Konteynerlerde loglama, uygulamanın konteyner içindeki standart çıktı (stdout) ve hata (stderr) akışlarının yönlendirilmesine dayanır. Docker bu akışları toplar ve docker logs komutu ile erişim sağlar.
Alternatif yaklaşımlar:
-
Docker log sürücüleri kullanımı: Docker daemon’unu, logları merkezi log sistemlerine gönderecek şekilde yapılandırmak (örneğin, ELK Stack, Splunk, CloudWatch Logs) ve çeşitli log sürücüleri kullanmak. Bu, üretim ortamları için tercih edilen yöntemdir.
-
Hacim eşleştirmesi: Ana sistemden konteynere bir hacim monte etmek ve uygulamanın logları bu hacme yazmasını sağlamak.
# docker-compose.yml örneği services: my_app: image: my_app_image volumes: - /var/log/myapp:/app/logs # Hacim eşleştirmesiBu sayede loglar, belirtilen yolda ana makinede erişilebilir olur.
-
Log toplama ajanları kurulumu: Logları toplayan (örneğin, Filebeat, Fluentd) ajanını konteyner içinde veya yan konteyner olarak dağıtmak ve logları merkezi sisteme göndermek.