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

Docker Compose Log'larına Kolay Rehber: Nasıl Kontrol Edilir ve Yönetilir

Ada Lovegood By Ada Lovegood 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 loglama

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 durumunda günlükler, uygulama hatalarını tespit etmemize yardım eder.

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 Hosting

Web siteni veya uzak masaüstünü barındırmak için piyasanın en uygun fiyatlı ekonomik veya premium Linux VPS'ini al. Daha yüksek verim için Linux KVM üzerinde çalışan ve daha hızlı çalışmak için NVMe SSD depolamalı güçlü donanımda.

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ş

Bloga göz at

Okumaya devam et.

Parlayan neon cyan tel örgü kubbeyle korunan metalik bir konteyner, koyu mavi arka planda makale başlığı ve Cloudzy logosu içeriyor.
Geliştirici Araçları ve DevOps

2026'da Kaçınman Gereken Docker Güvenlik Hataları

Docker'ı production'da aylarca görünür bir sorun olmadan çalıştırabilirsin. Konteynerler başlar, uygulamalar yanıt verir, hiçbir şey bozulmaz. Sonra açık bir port veya yanlış yapılandırılmış bir izin sorun yaratır.

Rexa CyrusRexa Cyrus 15 dk okuma
Docker konteynerlerini temsil eden 3D parlayan mavi küp yapısı ve yanında 'Portainer vs Yacht: Which Docker UI Should You Choose' metni ve Cloudzy logosu.
Geliştirici Araçları ve DevOps

Portainer vs Yacht: 2026'da Hangi Docker UI'ını Seçmelisin?

Docker konteynerlerini CLI üzerinden yönetmek basit kurulumlar için etkili ama büyütmede zayıf kalır. Konteyner sayısı arttıkça durumları, logları ve güncellemeleri elle takip etmek hatalara açık hale gelir.

Rexa CyrusRexa Cyrus 13 dk okuma
Sürekli Entegrasyon Araçları
Geliştirici Araçları ve DevOps

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

&nbsp; Yazılım geliştirme alanı her zamankinden daha hızlı evriliyor. Bu hızlı büyümenin gerisinde kalmak istemiyorsan DevOps metodolojilerini ve Agile'ı benimsemelisin.

Ada LovegoodAda Lovegood 11 dk okuma

Dağıtmaya hazır mısın? 2,48 $/ay'dan başlayan fiyatlarla.

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