Docker Debugging

Container hata ayıklama ve troubleshooting

Log Analizi

# Tüm loglar
docker logs container_name

# Son 100 satır
docker logs --tail 100 container_name

# Canlı takip
docker logs -f container_name

# Zaman damgası ile
docker logs -t container_name

# Belirli zaman aralığı
docker logs --since 2024-01-01 container_name
docker logs --since 30m container_name

Container İnceleme

# Detaylı bilgi
docker inspect container_name

# Belirli bilgi
docker inspect --format='{{.State.Status}}' container_name
docker inspect --format='{{.NetworkSettings.IPAddress}}' container_name

# Kaynak kullanımı
docker stats container_name

# Çalışan process'ler
docker top container_name

Container İçine Girme

# Bash ile
docker exec -it container_name bash

# Sh ile (alpine)
docker exec -it container_name sh

# Root olarak
docker exec -u root -it container_name bash

# Belirli dizinde
docker exec -w /var/log -it container_name bash

Dosya Kopyalama

# Container'dan host'a
docker cp container_name:/var/log/app.log ./app.log

# Host'tan container'a
docker cp ./config.json container_name:/app/config.json

Yaygın Sorunlar

Container Hemen Kapanıyor

# Logları kontrol et
docker logs container_name

# Foreground'da çalıştır
docker run nginx  # -d olmadan

# Entry point kontrol
docker run -it --entrypoint sh nginx

Port Çakışması

# Kullanılan portları kontrol et
docker ps --format "{{.Names}}: {{.Ports}}"
netstat -tlnp | grep :80

Volume İzin Sorunu

# İzinleri kontrol et
docker exec container_name ls -la /data

# Düzelt
docker exec -u root container_name chown -R 1000:1000 /data

Events Takibi

# Canlı event'ler
docker events

# Filtreli
docker events --filter container=myapp
docker events --filter event=die