Foruma hoş geldin 👋, Ziyaretçi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Docker Konteynerinde Hata Ayıklama: Çalışan Bir Konteynere Bağlanma (exec) ve Logları İnceleme

devster

Üye
Katılım
14 Mart 2026
Mesajlar
23
Merhaba arkadaşlar, bugün sizlere Docker konteynerlerinde karşılaştığımız sorunları nasıl teşhis edip çözebileceğimizi anlatacağım. Özellikle çalışan bir konteynerin içine nasıl bağlanacağımızı (exec) ve logları nasıl etkili bir şekilde inceleyeceğimizi göreceğiz. Bu teknikler, bir servis neden başlamıyor, neden beklenen cevabı vermiyor veya performans sorunu yaşıyor gibi soruları çözmek için benim de sık sık başvurduğum temel yöntemler.

🔍 Hata Ayıklamaya Nereden Başlamalı?

İlk adım her zaman konteynerlerinizin genel durumunu kontrol etmektir. Aşağıdaki komutla çalışan tüm konteynerleri listeleyelim.

Bash:
docker ps

Eğer konteyneriniz listede yoksa, `docker ps -a` komutuyla durdurulmuş (exited) konteynerleri de görebilirsiniz. Sorunlu olduğunu düşündüğünüz konteynerin ID'sini veya ismini not alın.

⚙️ Konteynerin İçine Bağlanma (docker exec)

Konteyner çalışıyorsa ama davranışında bir gariplik varsa, içine bağlanıp ortamı incelemek en doğru yoldur. Bunun için `docker exec` komutunu kullanıyoruz. En yaygın kullanımı, interaktif bir bash oturumu açmaktır.

Bash:
docker exec -it <konteyner_adi_veya_id> /bin/bash

Eğer konteynerde bash yüklü değilse (örn. Alpine tabanlı imajlar), `/bin/sh` deneyebilirsiniz.

Bash:
docker exec -it <konteyner_adi_veya_id> /bin/sh

Bu komutla konteynerin içindeymiş gibi komut çalıştırabilir, dosyalara bakabilir, prosesleri listeleyebilirsiniz. Örneğin, çalışan prosesleri görmek için `top` veya `ps aux` komutunu kullanın. Servisinizin çalışıp çalışmadığını kontrol edin. Benim sunucularda genelde ilk baktığım yer burası oluyor.

📄 Logları İnceleme (docker logs)

Konteynere bağlanmak her zaman pratik olmayabilir veya sorun geçmişte olmuşsa loglara bakmak gerekir. Docker, konteynerlerin stdout/stderr çıktılarını otomatik olarak toplar ve `docker logs` komutuyla bize sunar.

Temel logları görmek için:

Bash:
docker logs <konteyner_adi_veya_id>

Logları gerçek zamanlı (tail -f gibi) takip etmek çok kullanışlıdır, özellikle bir hata anını yakalamak istediğinizde.

Bash:
docker logs -f <konteyner_adi_veya_id>

Son N satırı görmek için (örneğin son 100 satır):

Bash:
docker logs --tail 100 <konteyner_adi_veya_id>

Belirli bir zaman aralığındaki logları filtrelemek için `--since` ve `--until` flag'lerini kullanabilirsiniz. Bu, çok fazla log üreten konteynerlerde işinizi oldukça kolaylaştırır.

⚠️ Dikkat Edilmesi Gerekenler

Şu ayara çok dikkat etmelisiniz: Eğer uygulamanız logları bir dosyaya yazıyorsa (örn. /var/log/myapp/app.log), `docker logs` komutu bu dosyadaki logları GÖSTERMEZ. `docker logs` sadece konteynerin 1 numaralı prosesine (PID 1) bağlı olan stdout/stderr'ı gösterir. Bu nedenle, uygulamanızın loglarını doğrudan stdout'a yönlendirdiğinizden emin olun ya da log dosyasını okumak için `docker exec` ile konteynere bağlanmanız gerekebilir.

Ayrıca, loglar disk alanınızı hızla doldurabilir. Docker'ın log sürücüsünü ve rotasyon ayarlarını (logrotate) yapılandırmayı unutmayın.

🔧 Pratik Örnek: Web Sunucusu Sorunu

Diyelim ki "webapp" isimli Nginx konteyneriniz çalışıyor ama 404 hatası alıyorsunuz. İşte adım adım yapacağımız işlemler:

1. Önce loglara hızlıca bir bakalım:
Bash:
docker logs --tail 50 webapp
2. Loglarda net bir şey göremediysek, içine bağlanalım ve konfigürasyon dosyasını kontrol edelim:
Bash:
docker exec -it webapp /bin/bash
Konteyner içinde:
Bash:
cat /etc/nginx/nginx.conf
    nginx -t # Konfigürasyon testi yapalım
3. Nginx prosesinin çalıştığından emin olalım:
Bash:
ps aux | grep nginx

Bu basit akış, sorunun kaynağını %90 ortaya çıkaracaktır.

Umarım bu rehber, Docker ortamınızda karşılaştığınız sorunları çözmenize yardımcı olur. Siz bu konfigürasyonu kendi sunucularınızda nasıl yapıyorsunuz? Farklı kullandığınız araçlar veya püf noktaları var mı? Ya da bu konuda sorusu olan aşağıya yazsın, bildiğim kadarıyla yardımcı olmaya çalışırım.
 

Tema özelleştirme sistemi

Bu menüden forum temasının bazı alanlarını kendinize özel olarak düzenleye bilirsiniz.

Zevkine göre renk kombinasyonunu belirle

Tam ekran yada dar ekran

Temanızın gövde büyüklüğünü sevkiniz, ihtiyacınıza göre dar yada geniş olarak kulana bilirsiniz.

Geri