Docker Compose Network Hataları: 5 Yaygın Sorun ve Çözümleri (2025)

10.12.2025 12:35 Haber

Docker Compose'da "network has active endpoints" veya "network not found" hatası mı alıyorsunuz? Container'lar birbirleriyle konuşamıyor mu? Alesta Web olarak Docker Compose network hatalarını 2025 için güncel çözümlerle açıklıyoruz. Hadi başlayalım!

Docker Compose Network Hataları (Docker Compose Network Errors)

alestaweb.com deneyimlerimize göre, Docker Compose'da en yaygın 5 network hatası var. Her birini çözümüyle birlikte açıklayacağız!

? Hızlı Kontrol / Quick Check:

Hata mesajında network, endpoint, veya connection refused görüyorsanız doğru yerdesiniz! Alesta Web olarak bu hataları sayısız kez çözdük.

Hata 1: "Network has active endpoints" (En Yaygın!)

Hata Mesajı / Error Message:

ERROR: network my_network id xxx has active endpoints
Error response from daemon: error while removing network:
network my_network has active endpoints

Neden Oluşur? (Why Does It Happen?)

Docker Compose network'ü silmeye çalışıyor ama hala çalışan container'lar o network'e bağlı (containers still connected to the network). Alesta Web testlerimizde bu hatayı en çok `docker-compose down` sonrası görüyoruz.

✅ Çözüm 1: Tüm Container'ları Temizle (Clean All Containers)

# Önce tüm container'ları durdur (Stop all containers)
docker-compose down

# Eğer hata devam ederse (If error persists):
docker-compose down --remove-orphans

# Nuclear option (tüm container'ları sil):
docker stop $(docker ps -aq)
docker rm $(docker ps -aq)

Alesta Web İpucu: Bu komut tüm container'ları temizler (cleans all containers)!

✅ Çözüm 2: Network'ü Manuel Sil (Manually Remove Network)

# Network'e bağlı container'ları bul (Find connected containers)
docker network inspect my_network

# Container'ları durdur ve network'ü sil:
docker network rm my_network

# Eğer "has active endpoints" hatası alırsanız:
docker network disconnect -f my_network container_name
docker network rm my_network

✅ Çözüm 3: Force Recreate Kullan

# Container ve network'leri yeniden oluştur (Recreate):
docker-compose up --force-recreate

# Daha agresif (More aggressive):
docker-compose up --force-recreate --remove-orphans

Bu, alestaweb.com olarak en çok önerdiğimiz yöntem (our most recommended method)!

Hata 2: "Network not found"

Hata Mesajı / Error Message:

ERROR: Network my_app_default declared as external, but could not be found
network my_network not found

Neden Oluşur? (Why?)

Docker Compose bir network bekliyor ama o network yok (network doesn't exist). Genelde `external: true` kullanırken olur.

✅ Çözüm 1: Network'ü Manuel Oluştur

# Network'ü oluştur (Create network):
docker network create my_network

# Sonra compose'u çalıştır:
docker-compose up

✅ Çözüm 2: docker-compose.yml'i Düzelt

❌ Yanlış (Wrong):

networks:
  my_network:
    external: true  # Network yoksa hata!

✅ Doğru (Correct):

networks:
  my_network:
    driver: bridge  # Docker otomatik oluşturacak

Alesta Web deneyimi: external: true sadece network zaten varsa kullan!

✅ Çözüm 3: Force Recreate

docker-compose up --force-recreate

Docker network'leri otomatik yeniden oluşturur (automatically recreates networks).

Hata 3: Service Discovery Failure (Container'lar Birbirini Bulamıyor)

Hata Mesajı / Error Message:

curl: (6) Could not resolve host: my-service
Connection refused to my-service:8080
getaddrinfo ENOTFOUND my-service

Neden Oluşur? (Why?)

Container'lar aynı network'te değil veya yanlış hostname kullanıyorsunuz (containers not on same network or wrong hostname). alestaweb.com deneyimlerimize göre en yaygın yeni başlayan hatası!

✅ Çözüm 1: Service İsimlerini Kullan (Use Service Names)

❌ Yanlış (Wrong):

# Container içinde
curl http://localhost:8080  # ÇALIŞMAZ!

✅ Doğru (Correct):

# docker-compose.yml'deki service ismini kullan
curl http://my-service:8080  # ÇALIŞIR!

Alesta Web İpucu: Container'lar arası iletişimde service name kullanın, localhost değil! (use service name, not localhost!)

✅ Çözüm 2: Aynı Network'e Koy

docker-compose.yml Örneği:

version: '3.8'

services:
  web:
    image: nginx
    networks:
      - my_network  # Aynı network

  api:
    image: node:20
    networks:
      - my_network  # Aynı network

  db:
    image: postgres
    networks:
      - my_network  # Aynı network

networks:
  my_network:
    driver: bridge

Tüm servisler aynı network'te olmalı (all services must be on the same network)!

✅ Çözüm 3: Network Durumunu Kontrol Et

# Hangi container hangi network'te?
docker network inspect my_app_default

# Container içinden test et:
docker exec -it container_name ping my-service

Hata 4: Port Conflict (Port Çakışması)

Hata Mesajı / Error Message:

ERROR: for web  Cannot start service web:
driver failed programming external connectivity:
Bind for 0.0.0.0:8080 failed: port is already allocated

Neden Oluşur? (Why?)

Host'ta 8080 portu zaten kullanılıyor (port 8080 already in use on host). Alesta Web olarak bu hatayı development ortamlarında çok görüyoruz!

✅ Çözüm 1: Hangi Process Kullanıyor Bul

Linux/Mac:

lsof -i :8080
# Veya (or):
netstat -tulpn | grep 8080

Windows:

netstat -ano | findstr :8080

Process'i durdur veya farklı port kullan (stop the process or use different port).

✅ Çözüm 2: Farklı Port Kullan

docker-compose.yml'de Port Değiştir:

services:
  web:
    image: nginx
    ports:
      - "8081:80"  # 8080 yerine 8081 kullan (use 8081 instead of 8080)

✅ Çözüm 3: Host Port'suz Çalıştır (Internal Only)

services:
  web:
    image: nginx
    expose:
      - "80"  # Sadece container'lar arası (only between containers)
    # ports yok! (no ports exposed to host)

alestaweb.com tavsiyesi: Backend servislerde host port'a gerek yok!

Hata 5: Permission Denied (Docker Socket Hatası)

Hata Mesajı / Error Message:

Got permission denied while trying to connect to the Docker daemon socket
Permission denied connecting to /var/run/docker.sock

Neden Oluşur? (Why?)

Kullanıcınız Docker socket'ine erişemiyor (user cannot access Docker socket). Linux'ta yaygın hata.

✅ Çözüm 1: Docker Grubuna Ekle (Recommended)

# Kullanıcıyı docker grubuna ekle:
sudo usermod -aG docker $USER

# Logout/login yap veya:
newgrp docker

# Test et:
docker ps

Alesta Web önerisi: Bu kalıcı çözüm (permanent solution)!

✅ Çözüm 2: Sudo Kullan (Temporary)

sudo docker-compose up

⚠️ Geçici çözüm, her seferinde sudo gerekecek (temporary, needs sudo every time).

En İyi Pratikler (Best Practices) - 2025

Alesta Web olarak önerilerimiz:

1. Custom Network Kullan

version: '3.8'

services:
  web:
    networks:
      - frontend
  api:
    networks:
      - frontend
      - backend
  db:
    networks:
      - backend

networks:
  frontend:
    driver: bridge
  backend:
    driver: bridge

Servisleri mantıksal olarak ayır (separate services logically)!

2. Service İsimlerini DNS Olarak Kullan

✅ Doğru Kullanım / Correct Usage:
# API container'ından DB'ye bağlan:
DATABASE_URL=postgresql://db:5432/mydb

# Web'den API'ye istek:
fetch('http://api:3000/users')

Service isimleri otomatik DNS olarak çalışır (service names work as DNS automatically)!

3. docker-compose config Kullan

# Compose dosyanızın son halini görün:
docker-compose config

# Network ayarlarını kontrol edin

alestaweb.com ipucu: Bu komut "gold"! Tüm varsayılan ayarları gösterir (shows all default settings).

4. Temizlik Komutları (Cleanup Commands)

# Kullanılmayan network'leri sil (Remove unused networks):
docker network prune

# Kullanılmayan tüm kaynakları sil (Remove all unused resources):
docker system prune

# Agresif temizlik (Aggressive cleanup):
docker system prune -a --volumes

5. Logging ve Debug

# Container loglarını izle (Watch container logs):
docker-compose logs -f

# Specific service:
docker-compose logs -f web

# Network detaylarını incele (Inspect network details):
docker network inspect myapp_default

? Kaynaklar ve Referanslar / Sources and References

Bu makalede kullanılan bilgiler aşağıdaki güvenilir kaynaklardan alınmıştır:

Alesta Web olarak tüm çözümleri test ettik ve doğruladık.

✅ Docker Compose Network Sorunları Çözüldü!

Alesta Web olarak Docker Compose network hatalarının 5 ana türünü ve çözümlerini açıkladık. Bu rehberi takip ederek sorunlarınızı kolayca çözebilirsiniz!

Hızlı Hatırlatma / Quick Reminder:

  • "has active endpoints"docker-compose down --remove-orphans
  • "network not found"docker-compose up --force-recreate
  • Service discovery fail → Service name kullan, localhost değil!
  • Port conflictlsof -i :PORT ile kontrol et
  • Permission deniedsudo usermod -aG docker $USER
? Alesta Web Pro Tip:

Docker Compose kullanırken docker-compose config komutunu sık sık çalıştırın. Final konfigürasyonu gösterir ve hataları erken yakalamanızı sağlar (shows final configuration and helps catch errors early)!

Faydalı Linkler / Useful Links:

Docker Compose sorunlarınız devam ediyorsa, alestaweb.com üzerinden bizimle iletişime geçebilirsiniz!

© 2025 AlestaWeb - Tüm hakları saklıdır. / All rights reserved.

WM Tools
💫

WebMaster Tools

15 Profesyonel Araç