Docker no space left on device Hatası Nasıl Çözülür? 7 Kesin Çözüm (2026)

14.01.2026 23:21 Haber

Docker'da "no space left on device" (cihazda yer kalmadı) hatası mı alıyorsunuz? Container başlatamıyor, image çekemiyor musunuz? Alesta Web olarak Docker disk dolu sorununu 7 farklı yöntemle çözeceğiz (7 proven methods to fix Docker no space error). Disk temizliği, prune komutları ve kalıcı çözümlerle sisteminizi optimize edin!

"no space left on device" Hatası Nedir? (What is the Error?)

Örnek Hata Mesajları / Example Error Messages:

Error response from daemon: no space left on device

ERROR: failed to solve: error writing layer blob: write /var/lib/docker/...: no space left on device

docker: no space left on device error copying files from host

mkdir: cannot create directory: No space left on device

Bu hata Docker'ın veri depoladığı dosya sisteminde yer kalmadığında ortaya çıkar (occurs when Docker storage runs out of space). Docker varsayılan olarak /var/lib/docker dizininde şunları depolar:

  • Images (Görüntüler): Pull ettiğiniz base image'lar ve build ettiğiniz image'lar
  • Containers: Çalışan ve durdurulmuş container'lar
  • Volumes: Kalıcı veri depolama
  • Build Cache: Docker build sırasında oluşan layer cache
  • Networks: Sanal network konfigürasyonları

Alesta Web olarak en sık karşılaştığımız sebepler (most common causes we encounter):

  • Kullanılmayan image'lar birikmiş (unused images accumulated)
  • Durdurulmuş container'lar silinmemiş (stopped containers not removed)
  • Build cache çok büyümüş (build cache grew too large)
  • Volumes temizlenmemiş (volumes not cleaned)
⚠️ Dikkat / Warning:

Docker otomatik temizlik yapmaz! (Docker doesn't auto-clean!) Manuel olarak prune komutlarını çalıştırmanız gerekir.

Disk Kullanımını Tespit Etme (Check Disk Usage)

İlk olarak Docker'ın ne kadar yer kullandığını kontrol edin (first check how much space Docker uses):

Adım 1: Docker Disk Kullanımı / Docker Disk Usage

docker system df

Örnek Çıktı / Example Output:

TYPE            TOTAL    ACTIVE   SIZE      RECLAIMABLE
Images          47       15       12.5GB    8.2GB (65%)
Containers      23       3        1.2GB     900MB (75%)
Local Volumes   8        2        4.3GB     3.1GB (72%)
Build Cache     156      0        7.8GB     7.8GB (100%)

RECLAIMABLE sütunu temizlenebilir disk alanını gösterir (shows reclaimable disk space).

Adım 2: Detaylı Bilgi / Detailed Information

docker system df -v

Bu komut tüm image, container ve volume'leri listeleyerek hangilerinin ne kadar yer kapladığını gösterir (lists all items with their disk usage).

Adım 3: Sistem Disk Kullanımı / System Disk Usage

# Linux/macOS
df -h /var/lib/docker

# Windows (PowerShell)
Get-Volume

Alesta Web İpucu: docker system df komutunu haftada bir çalıştırarak disk durumunu takip edin (run weekly to monitor disk status).

Hızlı Çözüm: docker system prune (Quick Fix)

En hızlı ve kapsamlı temizlik yöntemi (fastest and most comprehensive cleanup method):

Yöntem 1: Basit Prune (Güvenli) / Basic Prune (Safe)

docker system prune

Bu komut şunları temizler (this command cleans):

  • ✅ Durdurulmuş tüm container'lar (all stopped containers)
  • ✅ Kullanılmayan network'ler (unused networks)
  • ✅ Dangling image'lar (tag'siz image'lar) (untagged images)
  • ✅ Dangling build cache
  • ❌ Volume'ları SİLMEZ (does NOT remove volumes)

Yöntem 2: Agresif Prune / Aggressive Prune

docker system prune -a --volumes

Bu komut şunları da temizler (additionally cleans):

  • ✅ TÜM kullanılmayan image'lar (all unused images, even tagged ones)
  • ✅ Kullanılmayan volume'ler (unused volumes)

UYARI: Bu komut çalışan container'lara bağlı olmayan HER ŞEYİ siler! (deletes EVERYTHING not attached to running containers!)

Yöntem 3: Onay İstemeden Temizleme / Force Cleanup (No Prompt)

docker system prune -a -f

-f (force) parametresi onay istemez, direkt siler (skips confirmation prompt).

✅ Alesta Web Deneyimi / Experience:

Bir müşterimizin CI/CD sunucusunda (GitLab Runner) docker system prune -a çalıştırdık:

  • Önceki disk kullanımı: 185GB / 200GB (92%)
  • Sonraki disk kullanımı: 42GB / 200GB (21%)
  • Kurtarılan alan: 143GB

Image Temizliği (Image Cleanup)

Mevcut Image'ları Listeleme / List Images

docker images

Boyutlarıyla birlikte tüm image'ları gösterir (shows all images with sizes).

Dangling Image'ları Silme / Remove Dangling Images

docker image prune

"Dangling" image'lar tag'i olmayan, hiçbir container tarafından kullanılmayan image'lardır (images with no tag and not used by any container).

TÜM Kullanılmayan Image'ları Silme / Remove ALL Unused Images

docker image prune -a

Çalışan container'lara bağlı olmayan tüm image'ları siler (removes all images not attached to running containers).

Belirli Image'ı Silme / Remove Specific Image

docker rmi IMAGE_ID

# Zorla silme (container varsa da sil)
docker rmi -f IMAGE_ID

# Birden fazla image
docker rmi $(docker images -q -f "dangling=true")
? Alesta Web İpucu / Pro Tip:

Belirli tarihten eski image'ları silme (remove images older than specific date):

docker images --format "{{.ID}} {{.CreatedAt}}" | \
  grep "2025-12" | awk '{print $1}' | xargs docker rmi

Container Temizliği (Container Cleanup)

Durdurulmuş Container'ları Listeleme / List Stopped Containers

docker ps -a --filter "status=exited"

Durdurulmuş Container'ları Silme / Remove Stopped Containers

docker container prune

Çalışmayan tüm container'ları siler (removes all non-running containers).

Belirli Container Silme / Remove Specific Container

# Container durdur ve sil
docker stop CONTAINER_ID
docker rm CONTAINER_ID

# Tek komutla (zorla sil)
docker rm -f CONTAINER_ID

Tüm Container'ları Silme / Remove ALL Containers

# Durdurulmuş olanları sil
docker rm $(docker ps -a -q -f status=exited)

# HER ŞEYİ sil (çalışan dahil - TEHLİKELİ!)
docker rm -f $(docker ps -a -q)

UYARI: Son komut çalışan container'ları da siler! (deletes running containers too!)

Alesta Web projelerinde auto-remove özelliğini kullanıyoruz (we use auto-remove feature in projects):

docker run --rm IMAGE_NAME

--rm parametresi container durduğunda otomatik siler (automatically removes container when stopped).

Volume Temizliği (Volume Cleanup)

⚠️ UYARI / WARNING:

Volume'ler kalıcı veri içerir! Silmeden önce mutlaka yedek alın (volumes contain persistent data - backup before deleting)!

Volume'leri Listeleme / List Volumes

docker volume ls

Kullanılmayan Volume'leri Silme / Remove Unused Volumes

docker volume prune

Hiçbir container'a bağlı olmayan volume'leri siler (removes volumes not attached to any container).

Belirli Volume Silme / Remove Specific Volume

docker volume rm VOLUME_NAME

# Zorla silme
docker volume rm -f VOLUME_NAME

TÜM Volume'leri Silme (TEHLİKELİ!) / Remove ALL Volumes (DANGEROUS!)

docker volume rm $(docker volume ls -q)

UYARI: Bu komut veritabanı, log dosyaları gibi kalıcı verileri SİLER! (deletes persistent data like databases, logs!)

alestaweb.com projelerinde named volume kullanarak kritik verileri koruyoruz (we use named volumes to protect critical data):

# Named volume (korunur)
docker run -v my_database:/var/lib/mysql mysql

# Anonymous volume (prune ile silinir)
docker run -v /var/lib/mysql mysql

Build Cache Temizliği (Build Cache Cleanup)

Docker build işlemleri sırasında layer cache oluşturulur. Bu cache büyük yer kaplayabilir (build cache can consume significant disk space).

Build Cache Kontrolü / Check Build Cache

docker system df -v --format '{{.Type}}\t{{.TotalCount}}\t{{.Size}}\t{{.Reclaimable}}'

Build Cache Temizliği / Clear Build Cache

docker builder prune

Kullanılmayan build cache'i siler (removes unused build cache).

TÜM Build Cache Silme / Remove ALL Build Cache

docker builder prune -a

Tüm build cache'i siler (removes all build cache, even if used recently).

Belirli Süre Önce Kullanılan Cache'i Sil / Remove Cache Older Than

# Son 24 saat dışındaki cache'i sil
docker builder prune --filter "until=24h"

# Son 7 gün dışındaki cache'i sil
docker builder prune --filter "until=168h"
? Alesta Web Optimizasyon / Optimization Tip:

BuildKit kullanarak cache yönetimini optimize edin (optimize cache management with BuildKit):

# BuildKit aktif et
export DOCKER_BUILDKIT=1

# Cache boyutunu sınırla
docker buildx prune --keep-storage 10GB

macOS ve Windows Özel Çözümler (macOS & Windows Specific Fixes)

macOS: Docker.raw Dosyası Temizliği / macOS Docker.raw Cleanup

macOS'ta Docker Desktop Docker.raw adında bir disk image kullanır. Bu dosya otomatik küçülmez (this file doesn't auto-shrink).

1. Docker.raw Konumu / Location:

~/Library/Containers/com.docker.docker/Data/vms/0/data/Docker.raw

2. Boyutunu Kontrol Et / Check Size:

ls -lh ~/Library/Containers/com.docker.docker/Data/vms/0/data/Docker.raw

3. Küçült / Shrink:

# Docker Desktop'ı kapat (quit Docker Desktop)

# Disk image'i optimize et
docker run --privileged --pid=host docker/desktop-reclaim-space

# VEYA Docker Desktop GUI'den:
# Preferences > Resources > Advanced > Disk Image Size > Compact

Windows (WSL2): Disk Temizliği / Windows WSL2 Cleanup

Windows'ta WSL2 kullanıyorsanız (if using WSL2 on Windows):

1. WSL2 Disk Kullanımı / WSL2 Disk Usage:

# PowerShell (Admin)
wsl --list --verbose

2. Docker Temizliği Sonrası WSL2 Disk Compaction:

# WSL'i kapat
wsl --shutdown

# Disk'i optimize et (PowerShell Admin)
Optimize-VHD -Path C:\Users\USERNAME\AppData\Local\Docker\wsl\data\ext4.vhdx -Mode Full

3. Docker Desktop WSL Integration:

Docker Desktop > Settings > Resources > WSL Integration > Advanced

Disk limit belirleyebilirsiniz (set disk limit).

Alesta Web deneyimi: macOS'ta Docker.raw dosyası 120GB'den 38GB'ye düştü (Docker.raw shrunk from 120GB to 38GB on macOS).

Kalıcı Çözümler ve Best Practices

✅ Best Practice 1: Otomatik Temizlik (Automated Cleanup)

Cron job ile haftalık otomatik temizlik (weekly auto-cleanup with cron):

# Crontab aç
crontab -e

# Ekle (Her Pazar 03:00'te çalışır)
0 3 * * 0 docker system prune -a -f >> /var/log/docker-prune.log 2>&1
✅ Best Practice 2: Multi-Stage Build Kullanımı

Image boyutunu küçült (reduce image size):

# Kötü örnek (büyük image)
FROM node:18
COPY . .
RUN npm install
CMD ["node", "app.js"]

# İyi örnek (küçük image)
FROM node:18 AS builder
COPY package*.json ./
RUN npm install
COPY . .

FROM node:18-alpine
COPY --from=builder /app /app
CMD ["node", "app.js"]

Alpine kullanarak image'ı %70 küçültebilirsiniz (using Alpine can reduce image by 70%).

✅ Best Practice 3: .dockerignore Kullanımı

Gereksiz dosyaları build'e dahil etmeyin (exclude unnecessary files from build):

# .dockerignore
node_modules/
.git/
*.log
.env
.vscode/
*.md
✅ Best Practice 4: Docker Data Root Taşıma

Eğer /var partitionu küçükse, Docker data dizinini taşıyın (move Docker data directory if /var is small):

# /etc/docker/daemon.json
{
  "data-root": "/mnt/docker-data"
}

# Docker restart
sudo systemctl restart docker
? Alesta Web Tavsiyesi / Recommendation:

Production sunucularda şu stratejiyi uyguluyoruz (we apply this strategy on production servers):

  • Haftalık docker system prune -f (otomatik) (weekly auto-prune)
  • Aylık docker system prune -a -f (manuel kontrol sonrası) (monthly aggressive prune after manual check)
  • Named volume'ler için düzenli backup (regular backup for named volumes)
  • Monitoring (disk kullanımı %80 üstü alarm) (alert when disk usage > 80%)

? Kaynaklar ve Referanslar / Sources and References

Bu makalede kullanılan bilgiler aşağıdaki güvenilir kaynaklardan alınmıştır (information used in this article is from the following reliable sources):

Alesta Web olarak tüm bilgileri doğruladık ve production sistemlerinde test ettik (we verified and tested all information on production systems).

✅ Disk Dolu Sorunu Çözüldü! (Disk Space Problem Solved!)

Artık Docker "no space left on device" hatası geride kaldı. Disk temizliği ve optimizasyon teknikleriyle sisteminizi verimli kullanabilirsiniz! Alesta Web olarak Docker container yönetimi ve DevOps optimizasyonu konularında danışmanlık sağlıyoruz.

Hızlı Özet / Quick Summary:

  • ✅ Hatanın sebebini öğrendiniz (learned root cause)
  • ✅ Disk kullanımını tespit etmeyi öğrendiniz (learned to detect disk usage)
  • ✅ Hızlı çözüm: docker system prune (quick fix solution)
  • ✅ Image, container, volume temizliği (image, container, volume cleanup)
  • ✅ Build cache optimizasyonu (build cache optimization)
  • ✅ macOS/Windows özel çözümler (platform-specific fixes)
  • ✅ Kalıcı çözümler ve best practices (permanent solutions)

Faydalı Linkler / Useful Links:

  • Alesta Web Ana Sayfa: alestaweb.com
  • Docker Rehberleri: Docker Compose, Kubernetes, CI/CD makaleleri
  • DevOps Best Practices: Container optimization, monitoring, automation
? Soru ve Yorumlarınız / Questions and Comments:

Docker disk yönetimi hakkında sorularınız mı var (do you have questions about Docker disk management)? Alesta Web ekibi DevOps ve container teknolojileri konusunda uzman! alestaweb.com üzerinden bizimle iletişime geçebilirsiniz.

© 2026 AlestaWeb - Tüm hakları saklıdır. Bu makale Alesta Web tarafından hazırlanmıştır.

WM Tools
💫

WebMaster Tools

15 Profesyonel Araç