%50 indirim tüm planlarda, sınırlı süre. Başlangıç fiyatı $2.48/mo
9 dakika kaldı
Geliştirici Araçları ve DevOps

Docker Compose Logs Rehberi: Logları Nasıl Görüntüler ve Yönetirsiniz?

Ada Sevgigüzel By Ada Sevgigüzel 9 dk okuma 23 Şubat 2025'te güncellendi
docker günlükleri

Docker uygulamalarının arka planda ne yaptığını merak ediyor musunuz? Konteynerlerin her hareketini kaydeden ve günlükler olarak bilinen bu gizli pencereye birlikte bakalım. Günlükler, sorunları gidermek için son derece kullanışlıdır. Ama başlamadan önce Docker ve Docker Compose'a kısaca göz atalım.

Docker, uygulamalarınızı küçük container'lara paketleyip herhangi bir bağımlılık olmadan çoğu işletim sisteminde çalıştırmanıza olanak tanır. Uygulamalarınızı her ortamda aynı şekilde çalışan Container adlı kutulara koyduğunuzu düşünebilirsiniz. Docker Compose'u öğrenmeden önce container kavramına hakim olmak önemli bir ön koşuldur. Bu nedenle önce konteynerleştirmenin faydaları hakkındaki blog yazımızı okumanızı öneririm.

Docker Compose, Docker ile birlikte gelir ve birden fazla container'lı uygulamanın servislerini, ağlarını ve depolama birimlerini bir arada yöneterek geliştirme sürecini kolaylaştırır. Docker container logları ve Docker Compose loglama, geliştiricilerin her container'da neler olduğunu görmesini sağlar.

Docker Compose Logları hakkında merak mı ediyorsunuz? Doğru yerdesiniz. Bu blog yazısında Docker Compose loglarının temellerini anlatacak ve daha ileri düzey konuları da ele alacağız. Docker Compose'u projelerinizde en verimli şekilde nasıl kullanacağınızı öğrenin.

Docker Compose Günlüklerinin Önemi

Bir geliştirici Docker ile bir uygulama başlatıyor ama Docker loglarını yapılandırmayı atlıyor. Başta her şey yolunda görünüyor. Ancak kısa süre içinde kullanıcılar hatalarla karşılaşmaya başlıyor ve uygulama yavaşlıyor. Docker logları olmadan geliştirici, Docker container'larının içinde neyin yanlış gittiğini göremez. Docker Compose logları, bu container'larda yaşananların ayrıntılı bir kaydı gibidir. Her olayı kayıt altına alır; bu da sorunları sonradan tespit edip çözebilmek için kritik önem taşır.

Bir geliştirici veya Sistem Yöneticisi olarak, birbirine bağlı çok katmanlı uygulamaların içinde ve arasında neler olduğunu anlamanız gerekir. Docker Compose logları tam da bu noktada işe yarar. Peki bu loglar neden bu kadar önemli?

  • Sorun Giderme ve Hata Ayıklama

Bir uygulama düzgün çalışmıyorsa veya hata veriyorsa docker loglarını inceleyin. Docker logları, sorunu izlemek için başvurmanız gereken ilk kaynaktır. Geliştiriciler docker loglarını inceleyerek sorunun kök nedenini tespit edebilir; ister koddaki bir hata, ister yanlış bir yapılandırma, isterse kaynak sorunları olsun.

  • Uygulama Sağlığını İzleme

Uygulama loglarını düzenli olarak izlemek, servislerin genel durumunu anlamaya yardımcı olur. Loglar, tekrarlayan hatalar veya yavaş yanıt süreleri gibi erken uyarı işaretlerini ortaya koyabilir. Bu örüntüleri erkenden fark etmek, olası sorunları başlamadan önlemenizi sağlar.

  • Denetim ve Uyumluluk

Belirli standartlara uymak zorunda olan uygulamalarda docker logları, uygulamanın kurallara uyup uymadığını gösteren ilk kanıt niteliğindedir. Bu loglar aynı zamanda yetkili veya yetkisiz erişim aktivitelerinin izlenmesinde de kritik bir rol oynar.

  • Optimizasyon

Loglar, performans verisi sağlayarak yazılım optimizasyonu için değerli bir kaynak oluşturur. Örneğin geliştiriciler, yavaş çalışan sorguları, verimsiz kod yollarını veya yetersiz kullanılan kaynakları bu sayede belirleyebilir.

Bir Docker Recipe Oluşturma: Web Sunucusu Dağıtımı

Bu bölümde birlikte bir Docker recipe oluşturacağız. Docker Compose loglarını keşfetmeye başlamak için önce bir şeyler inşa etmemiz gerekiyor. Bu amaçla bir web sunucusu dağıtalım. Bir Dockerfile oluşturmak için VPS üzerinde istediğiniz klasörde şu komutu çalıştırın nano Dockerfile aşağıdaki içerikle birlikte, ardından kaydedin:

 

FROM nginx:alpine
RUN rm /usr/share/nginx/html/index.html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

Peki bu kodun her satırı ne yapıyor?

  • Hafif bir temel imajla başlıyoruz, nginx:alpine.
  • Ardından Nginx'in varsayılan karşılama sayfasını kaldırıyoruz.
  • Sonra web sunucusunun port üzerinde dinleme yaptığından emin oluyoruz 80.
  • Son olarak Nginx sunucusunu şu komutla başlatıyoruz: CMD.

Artık Dockerfile dosyamız hazır. Bir sonraki adıma geçebiliriz: Docker Compose dosyasını oluşturmak. İşte docker-compose.yml dosya:

version: '3.8'
services:
web:
build: .
ports:
- "8080:80"
volumes:
- ./index.html:/usr/share/nginx/html/index.html

Her parçayı tam olarak anlamak için adım adım inceleyelim:

  • Sürüm kullanıyoruz 3.8.
  • Bir sonraki satırda, servisimizi adlandırıyoruz ""web“.
  • Ardından, Docker'ye web sunucumuzu mevcut klasörden oluşturmasını söylüyoruz.
  • Ana makinedeki 8080 portunu container içindeki 80 portuna yönlendirerek web sunucusunun bağlantı kurmasını sağlıyoruz.
  • Son olarak, volumes yapılandırması şu şekilde eşleştirilir index.html ana diskten konteynere. Daha sonra bir index.html istediğiniz içeriğe sahip bir dosya oluşturun ve bunu Dockerfile ve docker-compose.yml Dosyalar mevcut.

Şimdi Docker container'ımızı Docker Compose ile çalıştırma zamanı. Bunun için şu komutu çalıştırıyoruz: docker-compose up.

Docker container'ı Docker Compose ile çalıştır

Komutu çalıştırdıktan sonra docker-compose up komutu, Docker gerekli imajları internetten indirip yapılandırma dosyalarımızdaki talimatlara göre ayarlayacaktır.

Web sunucunuzun çalışıp çalışmadığını kontrol etmek için tarayıcınızı açın, VPS IP adresini girin ve 8080 portuna erişim isteği gönderin.

Dockerize edilmiş web sayfası

Küçük bir not olarak şunu da belirtmek gerekir: docker-compose up -d konteyneri arka planda çalıştırmak için.

Docker Compose ile Loglara Erişim

Web sunucumuz artık hazır ve çalışıyor. Loglar üretilmeye ve kaydedilmeye başlandı. Docker Compose loglarına erişmek, sorun giderme ve izleme açısından kritik önem taşır. Peki bu loglara nasıl bakabiliriz? İşte tam da burada docker-compose günlükleri işe yarar. Yapılandırma dosyasının bulunduğu klasörde olduğunuzdan emin olun ve komutu çalıştırın.

Docker Compose ile Loglara Erişim

Bazen logların oluşturulurken canlı olarak akmasını izlemek isteyebilirsiniz. Bunun için önceki komutun sonuna -f ekleyip çalıştırmanız yeterli: docker-compose logs -f.

Docker Compose ile Loglara Erişim

Bazı Docker tabanlı uygulamalar log kayıtlarında zaman damgası sunmayabilir. Bu durumda şunu kullanabilirsiniz: docker-compose logs -t günlüğün her satırı için kayıt zamanı eklemek amacıyla.

Docker Compose ile Loglara Erişim

Docker Loglar en son girişleri de görüntüleyebilir. Bunun için şunu kullanın: docker-compose logs –tail 10 komutu son 10 log girişini görüntüler. Docker compose logs tail ve benzer şekilde docker logs tail, tüm log geçmişini kaydırmadan son aktiviteyi hızlıca kontrol etmek istediğinizde özellikle işe yarar.

docker compose ile loglara erişim

Docker Compose'un temel amacı çok container'lı uygulamalar oluşturmaktır. Bu nedenle, belirli bir servise ait logları okumanız gerekebilir. Bunun için docker-compose logs -f SERVICEI don't see a complete English phrase to translate in your message. You've written ", remembering to replace" which appears to be a fragment. Could you please provide the full English text you'd like me to translate to Turkish? SERVICE komutunu gerçek servis adınızla kullanın.

docker ile loglara erişim

Docker Günlüğü

Docker ekosistemi, özellikle büyük ortamlarda birleşik uygulamalar için oldukça karmaşık hale gelebilir. Bildiğimiz gibi, her container log üretir. Bu logları alan, ileten ve depolayan mekanizmaya Logging Driver denir. Docker, varsayılan olarak Logging Driver için JSON dosyalarını kullanır; ancak her birinin avantajları ve dezavantajları olan çeşitli başka driver'ları da destekler.

Logların sorun giderme ve sistem performansını iyileştirme gibi birçok kritik alanda vazgeçilmez olduğu konusunda herkes hemfikirdir. Aşağıda, container loglarının kullanımındaki iki temel konuyu ele alacağız:

  • İzleme: Logların birincil amacı izlemedir. Container'lı uygulamalarımızın genel sağlık durumunu ortaya koyarlar.
  • Sorun Giderme: Sorun oluştuğunda loglar, uygulama hatalarını tespit etmemize yardımcı olur.

docker logs ve docker compose logs sürekli üretildiğinden, zamanla tüm VPS depolama alanını doldurabilir. Bu nedenle Log Rotation Policy adı verilen bir disk alanı yönetim stratejisine ihtiyaç duyarız. Bu politikayı oluşturmak ve uygulamak için docker-compose.yml dosyasına geri dönüp açın. Ardından aşağıdaki yapılandırmayı içeren bir logging bölümü ekleyin:

version: '3.8'
services:
web:
build: .
ports:
- "8080:80"
volumes:
- ./index.htm:/usr/share/nginx/html/index.htm
logging:
driver: json-file
options:
max-size: "200k"
max-file: "10"

Ayarları ihtiyaçlarınıza göre istediğiniz zaman düzenleyebilirsiniz. max-size ve max-file ihtiyaçlarınıza göre.

Docker Log Dağıtım Modelleri

Daha gelişmiş ortamlarda mühendisler, varsayılan JSON driver'ı yerine Syslog, fluentd gibi farklı logging modellerini tercih edebilir. Ancak JSON-file driver'ının çoğu log senaryosu için yeterli olduğunu ve varsayılan moddan sapmanın genellikle gerekmediğini göz önünde bulundurmak önemlidir.

Uygulamanızın mimarisine veya kurumsal gereksinimlerinize bağlı olarak, Log Aggregator olarak bilinen merkezi loglama çözümlerini kullanmanız gerekebilir. Bu hizmetler, Elasticsearch, Logstash, Kibana vb. dahil olmak üzere, farklı kaynaklardan gelen logları tek bir merkezi konumda toplamak, depolamak ve analiz etmek için tasarlanmıştır.

Öte yandan loglarınızı daha uygun maliyetli depolama çözümleriyle saklamalısınız. VPS'nizin yüksek hızlı ve pahalı depolama kullandığını düşünün; yalnızca ileride başvurmak için ihtiyaç duyabileceğiniz logları bu tür premium kaynaklarda tutmak ekonomik olmayabilir.

Her birinin avantajları ve dezavantajları olan çok sayıda loglama modeli mevcuttur. Her modeli dikkatle değerlendirip kendi gereksinimlerinize en uygun olanı seçmeniz önemlidir.

Linux VPS Barındırma

Web sitenizi veya uzak masaüstünüzü barındırmak için ekonomik ya da premium bir Linux VPS edinin; piyasadaki en uygun fiyatlarla. VPS, daha yüksek verimlilik için Linux KVM üzerinde çalışır ve hız odaklı NVMe SSD depolama ile güçlü donanım altyapısından yararlanır.

Devamını Oku

Sonuç

Docker Compose loglarını iyi anlamak, Docker uygulamalarınızı yönetmek ve hata ayıklamak açısından kritik öneme sahiptir. Bu loglara nasıl erişeceğinizi ve onları nasıl izleyeceğinizi öğrenmek, sorun çözme sürecinizi iyileştirir; uygulamanızın performansını ve güvenliğini artırır. İster geliştirici ister sistem yöneticisi olun, Docker Compose loglarını etkin biçimde kullanmak container yönetiminizi daha verimli kılar.

SSS

Docker Compose loglarını zamana göre nasıl filtreleyebilirim?

Docker Compose, logları zamana göre doğrudan filtrelemek için yerleşik bir yöntem sunmaz. Ancak logları grep ile yönlendirerek belirli bir desene göre filtreleyebilirsiniz. Örneğin şu komutu kullanabilirsiniz: docker-compose logs | grep "2023-04-06". Burada "2023-04-06" yerine aradığınız tarih veya zaman desenini yazın.

Docker Compose ile başlatılan container'lar nasıl durdurulur?

docker-compose.yml dosyasının bulunduğu dizine gidin ve docker-compose down komutunu çalıştırın.

Log dosyaları manuel olarak nasıl silinir?

Log rotation'ı docker-compose.yml dosyasında yapılandırmak yerine, Docker JSON log dosyalarını /var/lib/docker/containers/<container_id>/ dizininden manuel olarak silebilirsiniz. Bunu yapmadan önce docker ps -a komutuyla Docker container ID'sini belirlemeniz gerekir.

Docker loglarını canlı takip edebilir misiniz? 

Evet, yapabilirsiniz. Bunun için docker logs komutunu -f veya –follow seçeneğiyle birlikte kullanmanız gerekir. Bu şekilde Docker loglarını gerçek zamanlı olarak takip edebilirsiniz.

Paylaş

Blogdan daha fazlası

Okumaya devam et.

Derin mavi bir arka plan üzerinde parlayan neon camgöbeği tel çerçeve bir kubbe ile korunan metalik bir kap; üzerinde makalenin başlığı ve Cloudzy logosu yer alıyor.
Geliştirici Araçları ve DevOps

2026'da Kaçınılması Gereken En Yaygın Docker Güvenlik Hataları

Docker'yi aylarca herhangi bir sorun yaşamadan production ortamında çalıştırabilirsiniz. Container'lar başlar, uygulamalar yanıt verir, hiçbir şey bozulmaz. Sonra tek bir açık port ya da yanlış yapılandırılmış bir izin

Reksa SirusReksa Sirus 15 dakika okuma
Docker container'larını temsil eden parlak mavi 3D küp yapısı; yanında 'Portainer vs Yacht: Which Docker UI Should You Choose' yazısı ve Cloudzy logosu yer alıyor.
Geliştirici Araçları ve DevOps

Portainer vs Yacht: 2026'da Hangi Docker Arayüzünü Seçmelisiniz?

Docker konteynerlerini CLI üzerinden yönetmek basit kurulumlar için işe yarasa da ölçeklenmesi zordur. Konteyner sayısı arttıkça durumları, logları ve güncellemeleri manuel takip etmek hataya açık hale gelir

Reksa SirusReksa Sirus 13 dakikalık okuma
Sürekli Entegrasyon Araçları
Geliştirici Araçları ve DevOps

2026'da DevOps İş Akışlarınızı Optimize Etmek için En İyi CI/CD Araçları

&nbsp; Yazılım geliştirme dünyası hiç olmadığı kadar hızlı değişiyor. Bu hızın gerisinde kalmak istemiyorsanız DevOps metodolojilerini ve Agile'ı benimsemeniz gerekiyor.

Ada SevgigüzelAda Sevgigüzel 11 dakika okuma

Dağıtmaya hazır mısınız? Aylık 2,48 dan başlayan fiyatlarla.

2008'den bu yana bağımsız bulut. AMD EPYC, NVMe, 40 Gbps. 14 gün para iade garantisi.