Rehber 17 Mayıs 2026 · 7 dakika okuma

Docker için Sunucu Seçmek: Kaynak Hesabını Doğru Yap

Docker kurmak kolaydır; ama hangi sunucu planında kaç konteyner çalışır? RAM, CPU, disk ve kernel gereksinimlerini senaryo bazlı hesapla.

Docker'ı sunucuya kurmakla üzerinde gerçek bir uygulama çalıştırmak arasında ciddi bir fark var. \"2 GB RAM yeterli\" gibi genel tavsiyeler, ne kadar konteyner çalıştırdığınıza, hangi servisleri bir arada kullandığınıza ve disk I/O ihtiyacınıza göre doğru da yanlış da çıkabilir. Bu rehberde Docker daemon'ının kendisinin kaç kaynak tükettiğini, her konteynerin buna ne eklediğini ve üç farklı kullanım senaryosu için gerçek kaynak tablolarını bulacaksınız; böylece plan seçimini tahmine değil hesaba dayandırabilirsiniz.

Docker Daemon'ının Boş Kaynak Ayak İzi

Docker kurulduğunda arka planda üç ana işlem çalışmaya başlar: dockerd, containerd ve her çalışan konteyner için bir containerd-shim. Henüz hiç konteyner başlatmadan, sadece daemon ayakta iken aşağıdaki kaynaklar tüketilir:

  • RAM: 70–120 MB (dağıtıma ve Docker sürümüne göre değişir)
  • CPU: Idle durumda sıfıra yakın; konteyner başlatma/durdurma anlık spike üretir
  • Açık dosya tanımlayıcısı (file descriptor): ulimit -n değeriniz varsayılan 1024 ise Docker'ın ihtiyacını karşılamaz — minimum 65536 olarak ayarlanmalıdır

Pratik sonucu şu: 1 GB RAM'li bir sunucuda Docker kuruluyken uygulamalara kalan bellek yaklaşık 880–930 MB'dır. 512 MB RAM'li en ucuz planlarda daemon tek başına toplam RAM'in dörtte birini alır; bu nedenle 512 MB, production için geçerli bir başlangıç noktası değildir.

Konteyner Başına Eklenen Overhead

Çalışan her konteyner, uygulama belleğinin üstüne ek bir yük getirir:

  • containerd-shim işlemi: 5–10 MB RAM (konteyner başına)
  • cgroups ve namespace izolasyon katmanı: ihmal edilebilir CPU, 2–5 MB RAM
  • Log sürücüsü (json-file varsayılan): disk I/O tampon belleği, konteyner aktivitesine göre değişir
  • Sanal ağ arayüzü: iptables kuralları; kural sayısı arttıkça CPU yükü artar

5 konteyner çalışıyorsa yalnızca runtime overhead'dan 35–75 MB ekstra RAM harcanır; bunu uygulama belleğinize ekleyin. 10 konteynerde bu rakam 70–150 MB'a çıkar.

Üç Yaygın Senaryo: Somut Kaynak Tabloları

Senaryo A — Tek Konteyner (Basit Web Uygulaması)

Node.js veya Python Flask/FastAPI uygulaması; yalnızca bir konteyner, dış veritabanı bağlantısı.

Bileşen RAM CPU (ortalama)
Ubuntu 22.04 işletim sistemi 250–300 MB ~0% idle
Docker daemon (dockerd + containerd) 90–120 MB ~0% idle
Uygulama konteyneri 150–300 MB %5–20
Toplam 490–720 MB %5–20

Minimum plan: 1 vCPU / 1 GB RAM. Orta düzey trafik varsa 1 vCPU / 2 GB RAM'e geçin; aksi hâlde OOM (out-of-memory) durumunda sistem konteyneri öldürür ve uygulamanız çevrimdışı kalır.

Senaryo B — Üç Konteyner (LEMP Stack)

NGINX + PHP-FPM + MariaDB; klasik PHP uygulaması veya WordPress.

Bileşen RAM CPU (yük altında)
İşletim sistemi 250–300 MB ~0%
Docker daemon 90–120 MB ~0%
NGINX konteyneri 30–80 MB %1–5
PHP-FPM konteyneri 100–250 MB %5–30
MariaDB konteyneri 200–450 MB %3–15
Toplam 670 MB – 1.2 GB %9–50

Minimum plan: 2 vCPU / 2 GB RAM. MariaDB, innodb_buffer_pool_size değerine göre bellek tüketimini dramatik biçimde artırır; 2 GB planında bunu 256–384 MB ile sınırlayın. Production için 2 vCPU / 4 GB RAM tercih edin.

Senaryo C — Beş ve Üzeri Servis (Docker Compose Mikroservis Yığını)

API gateway + 3 mikroservis + Redis + PostgreSQL; tipik bir backend monorepo'su.

Bileşen Tahmini RAM
İşletim sistemi 300 MB
Docker daemon 100–120 MB
3 mikroservis konteyneri (ort. 200 MB) 600 MB
API gateway konteyneri 80–150 MB
PostgreSQL konteyneri 300–600 MB
Redis konteyneri 50–200 MB
Toplam 1.43 – 1.97 GB

Minimum plan: 4 vCPU / 4 GB RAM. Eğer aynı sunucu CI/CD agent da çalıştırıyorsa (örn. GitHub Actions self-hosted runner), build sırasında 1–2 GB ek bellek gerekir; bu durumda 4 vCPU / 8 GB RAM'e çıkın.

Disk: En Sık Atlanan Gereksinim

Docker imajları disk üzerinde katman (layer) sistemiyle saklanır. Her docker pull ve docker build katman ekler; eski katmanlar docker system prune yapılmazsa birikerek gizlice disk doldurur.

Referans imaj boyutları:

İmaj Yaklaşık Boyut
ubuntu:22.04 77 MB
node:20-alpine 185 MB
python:3.12-slim 155 MB
nginx:alpine 45 MB
mysql:8.0 580 MB
postgres:16 430 MB

5 farklı imajlı bir proje başlangıçta 1–3 GB disk kullanır. Aylık docker build döngüleri ve build önbelleği bu rakamı 15–25 GB'a taşıyabilir.

Minimum disk: 20 GB SSD (yalnızca geliştirme/test). Production için önerilen: 40–80 GB NVMe SSD. NVMe, docker build süreçlerinde standart SSD'ye kıyasla 2–4× daha hızlı çalışır; CI/CD iş akışı olan sunucularda bu fark doğrudan build süresini kısaltır.

Depolama sürücüsü olarak overlay2 kullandığınızı doğrulayın:

docker info | grep \"Storage Driver\"

Modern kernel ve dağıtımlarda varsayılan overlay2'dir; devicemapper görüyorsanız sürücüyü değiştirin.

Kernel ve İşletim Sistemi Uyumluluğu

Docker, Linux kernel 4.x üzerinde çalışır; ancak bazı özellikler daha yeni kernel gerektirir:

Özellik Minimum Kernel
overlay2 tam desteği 4.18
cgroups v2 5.2
Rootless Docker 5.11
eBPF tabanlı ağ (Cilium vb.) 5.10+
Dağıtım Kernel Docker Desteği Öneri
Ubuntu 22.04 LTS 5.15 Tam, cgroups v2 Önerilen
Debian 12 (Bookworm) 6.1 Tam, cgroups v2 Önerilen
AlmaLinux 9 5.14 Tam RHEL uyumlu iş yükleri için
Ubuntu 20.04 LTS 5.4 Tam EOS Nisan 2025 — geçiş yapın
CentOS 7 3.10 Kısıtlı seccomp ve user namespace eksik

CentOS 7 ve benzeri eski dağıtımlarda bazı Docker güvenlik profilleri (seccomp, user namespace remapping) çalışmaz. Yeni kurulum yapıyorsanız Ubuntu 22.04 veya Debian 12 ile başlayın.

Ağ Yapılandırması ve Port Yönetimi

Docker, her konteyner için sanal ağ arayüzü oluşturur ve bridge modunda iptables kuralları yazar. Bu genellikle hafiftir; ancak dikkat gerektiren durumlar var:

  • Çok sayıda Docker ağı: Her docker network create iptables'a kural ekler. Uzun süreli çalışan sunucularda 100+ ağ birikmesi CPU spike'larına yol açar; kullanılmayan ağları docker network prune ile temizleyin.
  • Yoğun trafik ve NAT overhead: Varsayılan bridge modunda her paket NAT'tan geçer. Saniyede 50.000+ bağlantı işleyen konteynerlerde host network modu veya Macvlan daha düşük gecikme sağlar.
  • Port çakışması: Docker, 80, 443, 3306, 5432 gibi standart portlara bind olabilir. Sunucuda ayrıca çalışan servisler varsa (örn. bare-metal NGINX), port çakışması konteynerin ayağa kalkmamasına neden olur. ss -tlnp ile önce portu denetleyin.

Swap: Emniyet Ağı mı, Performans Tuzağı mı?

Docker production ortamında swap'a güvenmemelidir. 2 GB RAM'li bir sunucuda bellek dolan bir MariaDB konteyneri swap'a düştüğünde disk I/O nedeniyle sorgu süresi 10–100× uzayabilir. Bu yavaşlama genellikle kademeli gelir ve fark edilmeden kronik bir performans sorununa dönüşür.

Swap kullanmak zorundaysanız, konteyner başına bellek ve swap sınırı tanımlayın:

services:
  db:
    mem_limit: 512m
    memswap_limit: 512m

memswap_limit değeri mem_limit ile eşit olduğunda swap kullanımı sıfırlanır; konteyner bellek limitini aşarsa swap yerine OOM sinyali alır. Bu, yavaş çöküş yerine hızlı hata yakalamayı sağlar.

VDS/VPS Plan Seçimi: Hangi Tier, Hangi Senaryo

Plan vCPU RAM Disk Uygun Senaryo
Giriş 1 1 GB 20 GB SSD Test ve geliştirme, tek hafif konteyner
Orta 2 2 GB 40 GB SSD LEMP stack, düşük trafikli production
İyi 2–4 4 GB 60 GB NVMe 3–5 servis, orta trafik, CI/CD
Güçlü 4–8 8 GB 80+ GB NVMe Mikroservis yığını, self-hosted runner, yoğun trafik

Plan seçiminde yalnızca RAM'e değil; disk tipine (NVMe vs. SSD), ağ bant genişliğine ve sanallaştırma türüne de bakın. KVM tabanlı VDS, overlay2 ve cgroups v2'yi tam destekler; OpenVZ tabanlı bazı eski VPS planları Docker desteğini kısıtlar veya hiç sunmaz. Sipariş vermeden önce sağlayıcıdan KVM sanallaştırması olduğunu teyit edin.

Sonuç ve Aksiyon Önerisi

\"Docker için minimum gereksinim\" sorusunun cevabı tek bir rakam değil; ne çalıştırdığınızın bir fonksiyonu. Test için 1 vCPU / 1 GB RAM geçerliyken, LEMP stack production'ı için 2 vCPU / 4 GB RAM'den aşağı inmeyin. Yeni kurulum yapıyorsanız Ubuntu 22.04 veya Debian 12 seçin, KVM sanallaştırmasını doğrulayın, overlay2 sürücüsünü kontrol edin, her konteynere mem_limit tanımlayın ve disk şişmesini önlemek için haftalık docker system prune alışkanlığı edinin. Sunucu planını belirlemeden önce yukarıdaki senaryo tablolarını esas alın; tahmine dayalı plan seçimi sonradan geçiş maliyeti ve kesinti riski yaratır.

Etiketler: #docker #vds #vps #sunucu #konteyner #ram #cpu #linux #kernel #docker compose

Hosting karşılaştırması yapmaya hazır mısın?

100+ firmanın fiyatlarını tek tıkla karşılaştır, en uygun paketi bul.

Hosting Karşılaştır →

İlgili Yazılar

0 ürün seçildi