Sobes.tech
Junior

Ç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:

  1. 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.

  2. 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ştirmesi
    

    Bu sayede loglar, belirtilen yolda ana makinede erişilebilir olur.

  3. 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.