Dynamis

Kubernetes vs Docker: hangisi ne zaman kullanılmalı?

Kubernetes vs Docker farkı nedir? Docker, Docker Compose ve Kubernetes'i deployment, scaling, self-healing, multi-node ve operasyon maliyeti açısından karşılaştırın.

Bu konuyu bir mühendisle konuşun30 dakikalık görüşme, mevcut durumunuz ve hedefinizle.
Özet çıkarımlar
  1. 01Docker ile Kubernetes doğrudan rakip değildir; Docker container image ve runtime workflow'una, Kubernetes ise cluster-level orchestration'a odaklanır.
  2. 02Tek host ve az sayıda servis için Docker Compose genellikle daha düşük operasyon yükü sunarken çoklu node, self-healing ve autoscaling ihtiyaçlarında Kubernetes daha anlamlıdır.
  3. 03Docker ile oluşturulan OCI uyumlu image'lar Kubernetes'te çalışabilir; dockershim'in Kubernetes 1.24'te kaldırılması Docker image desteğinin kalktığı anlamına gelmez.
  4. 04Kubernetes 1.37, CRI uyumlu container runtime gerektirir; containerd ve CRI-O yaygın seçeneklerdir.
  5. 05Küçük ekipler Kubernetes'e trend nedeniyle değil, mevcut Docker/Compose modelinin gerçek operasyon sınırlarına ulaştığında geçmelidir.
Kubernetes ile Docker ve Docker Compose kullanım modellerini karşılaştıran kapak görseli

Kısaca

Docker ve Kubernetes aynı işi yapan iki rakip ürün değildir. Docker, container image oluşturma ve container çalıştırma ekosistemidir. Kubernetes ise container workload'larını bir cluster üzerinde dağıtmak, ölçeklemek ve çalışır durumda tutmak için kullanılan orchestration platformudur. Küçük ve basit uygulamalarda Docker veya Docker Compose yeterli olabilir; çoklu node, otomatik recovery, yatay ölçekleme ve ortak deployment standardı gerektiğinde Kubernetes daha anlamlı hale gelir. Dynamis Teknoloji, seçimde "hangisi daha güçlü?" yerine "hangi operasyon ihtiyacını çözmeniz gerekiyor?" sorusunu esas alır.

Kubernetes vs Docker: temel fark

En kısa cevap:

  • Docker container üretir ve çalıştırır.
  • Kubernetes container workload'larını cluster üzerinde orkestre eder.

Bu nedenle çoğu production mimarisinde Docker ve Kubernetes birbirini dışlayan seçenekler değildir.

Bir ekip Docker ile image oluşturup bu image'ı Kubernetes üzerinde çalıştırabilir.

Docker nedir?

Docker container uygulamalarını:

  • build etmek
  • paketlemek
  • çalıştırmak
  • local geliştirme ortamında yönetmek

için kullanılan araç ve ekosistemdir.

Dockerfile ile image oluşturulur.

Docker Engine veya uyumlu runtime üzerinde container çalıştırılır.

Docker Compose ise birden fazla servisi tek YAML dosyasında tanımlamayı kolaylaştırır.

Örneğin:

  • web
  • API
  • PostgreSQL
  • Redis

servislerini tek compose.yaml dosyasıyla birlikte çalıştırabilirsiniz.

Kubernetes nedir?

Kubernetes, container workload'larını bir veya daha fazla node üzerinde çalıştırmak için kullanılan orchestration platformudur.

Temel yetenekleri:

  • scheduling
  • self-healing
  • service discovery
  • rollout/rollback
  • horizontal scaling
  • desired state
  • secret/config yönetimi
  • workload placement

gibi cluster seviyesi operasyonlardır.

Kubernetes nedir? rehberinde pod, node, control plane ve Service yapısını ayrıca açıklıyoruz.

Docker ve Kubernetes aynı katmanda mı?

Hayır.

Docker daha çok application packaging ve container runtime workflow'una yakındır.

Kubernetes ise orchestration katmanıdır.

Karşılaştırmayı şu şekilde düşünün:

KonuDocker / ComposeKubernetes
Container image buildGüçlüImage build etmez
Tek host deploymentBasitGereksiz karmaşık olabilir
Multi-container appCompose ile kolayNative workload objeleri
Çoklu nodeSınırlıTemel kullanım alanı
Self-healingRestart policy düzeyindeController tabanlı
Horizontal scalingManuel / sınırlıNative mekanizmalar
Service discoveryCompose networkService/DNS
Rolling deploymentBasit araçlarlaDeployment controller
Cluster schedulingYokVar
Operasyon karmaşıklığıDaha düşükDaha yüksek

Docker Compose ne zaman yeterli?

Docker Compose şu durumlarda iyi seçenek olabilir:

  • Tek sunucunuz varsa
  • 2-5 servis çalışıyorsa
  • Trafik öngörülebilir seviyedeyse
  • High availability zorunlu değilse
  • Deploy sıklığı düşük veya orta seviyedeyse
  • Küçük bir ekip yönetiyorsa

Docker'ın güncel dokümantasyonu Compose'un multi-container uygulamaları development, staging ve production ortamlarında tanımlamak ve çalıştırmak için kullanılabildiğini belirtir.

Tek sunucuda production workload için Compose tamamen geçersiz bir yaklaşım değildir.

Kubernetes ne zaman anlamlı hale gelir?

Kubernetes şu ihtiyaçlar belirginleştiğinde daha güçlü adaydır:

  • Birden fazla node
  • Çok sayıda servis
  • Otomatik recovery
  • Yatay scaling
  • Ortak deployment standardı
  • Birden fazla ürün ekibi
  • Daha gelişmiş traffic management
  • Merkezi platform yaklaşımı

Buradaki önemli nokta servis sayısının tek başına karar kriteri olmamasıdır.

10 servisiniz olabilir fakat tek host üzerinde basit operasyon yeterliyse Kubernetes hâlâ gereksiz olabilir.

Self-healing farkı

Docker'da restart policy ile container crash olduğunda yeniden başlatılabilir.

Kubernetes'te ise controller'lar desired state'i korumaya çalışır.

Örneğin Deployment 3 replica tanımlıyorsa:

  • pod crash olabilir
  • node kaybedilebilir
  • yeni pod farklı node üzerinde oluşturulabilir

Bu daha geniş bir recovery modelidir.

Ancak Kubernetes uygulamanın her arızasını otomatik çözmez.

Bozuk database migration veya yanlış application configuration yine insan müdahalesi gerektirebilir.

Scaling farkı

Docker Compose ile servis sayısı artırılabilir.

Ancak cluster-level autoscaling ve scheduling Kubernetes'in daha doğal kullanım alanıdır.

Kubernetes:

  • Horizontal Pod Autoscaler
  • Vertical Pod Autoscaler
  • Cluster Autoscaler

gibi farklı mekanizmalar sunabilir.

Bu mekanizmaların doğru çalışması için metrics ve resource requests/limits düzgün tasarlanmalıdır.

Networking farkı

Docker Compose tek host üzerindeki container'ları ortak network üzerinde kolayca bağlar.

Kubernetes'te:

  • Pod network
  • Service
  • DNS
  • Ingress
  • Gateway API
  • NetworkPolicy

gibi daha gelişmiş katmanlar bulunur.

Bu esneklik daha fazla operasyon karmaşıklığı da getirir.

Storage farkı

Docker Compose:

  • bind mount
  • volume

gibi mekanizmalar kullanabilir.

Kubernetes'te ise:

  • PersistentVolume
  • PersistentVolumeClaim
  • StorageClass
  • StatefulSet

gibi abstractions bulunur.

Kubernetes storage katmanı farklı storage provider'larını standardize etmeye yardımcı olur.

Ancak database HA ve backup yine ayrıca tasarlanmalıdır.

Mevcut durumunuzu bu tabloya biz yerleştirelim.

Deployment farkı

Docker Compose ile yeni image çekilip servisler yeniden başlatılabilir.

Kubernetes Deployment controller:

  • rolling update
  • replica kontrolü
  • rollout history
  • rollback

gibi özellikleri native olarak sağlar.

Çok sık deployment yapan ekiplerde bu fark daha belirgin hale gelir.

Docker image Kubernetes'te çalışır mı?

Evet.

Docker ile oluşturulan OCI uyumlu container image'ları Kubernetes üzerinde kullanılabilir.

Burada sık karıştırılan konu dockershim'dir.

Kubernetes 1.24'ten itibaren Docker Engine ile doğrudan dockershim entegrasyonunu kaldırdı.

Bu Docker image'larının desteklenmediği anlamına gelmez.

Kubernetes 1.37, Container Runtime Interface uyumlu runtime gerektirir.

Yaygın örnekler:

  • containerd
  • CRI-O

Docker Engine kullanılacaksa CRI adapter gerekir.

Kubernetes için Docker gerekli mi?

Hayır.

Kubernetes node'larında Docker Engine zorunlu değildir.

Hatta modern Kubernetes cluster'larında containerd yaygın olarak kullanılır.

Ancak developer tarafında Docker hâlâ:

  • image build
  • local test
  • development environment

için kullanılabilir.

Bu nedenle "Kubernetes Docker'ı kaldırdı" ifadesi doğru değildir.

Doğrusu:

Kubernetes, Docker Engine'e özel dockershim entegrasyonunu kaldırdı.

Docker Compose production'da kullanılabilir mi?

Evet.

Docker'ın güncel dokümantasyonu Compose tanımlarının production ortamında da kullanılabileceğini ve en basit deployment modelinin tek server üzerinde çalışmak olduğunu belirtir.

Production için:

  • restart policy
  • environment-specific config
  • volume ayarları
  • logging
  • backup
  • monitoring

gibi konular ayrıca düzenlenmelidir.

Compose'un production'da çalışabilmesi, her production workload için en doğru çözüm olduğu anlamına gelmez.

Tek sunucu için Kubernetes gerekli mi?

Genellikle hayır.

Tek sunucu üzerinde:

  • web app
  • database
  • Redis
  • background worker

çalıştırıyorsanız Docker Compose çok daha sade olabilir.

Tek-node Kubernetes:

  • öğrenme
  • development
  • edge
  • özel kullanım

senaryolarında anlamlı olabilir.

Ancak tek node üzerinde Kubernetes kullanmak high availability sağlamaz.

Mikroservis varsa Kubernetes zorunlu mu?

Hayır.

Mikroservis mimarisi Kubernetes gerektirmez.

Az sayıda mikroservis:

  • Docker Compose
  • VM tabanlı deployment
  • managed container platform

üzerinde çalışabilir.

Kubernetes değerini servis sayısından çok operasyon problemi belirler.

Küçük ekip için hangisi daha mantıklı?

5-20 kişilik yazılım şirketinde başlangıç noktası genellikle en basit çalışan çözüm olmalıdır.

Örnek:

Docker/Compose daha mantıklıysa

  • 1-2 VM
  • az sayıda servis
  • tek ekip
  • sınırlı trafik
  • basit deployment

Kubernetes daha mantıklıysa

  • çoklu node
  • birçok servis
  • sık deploy
  • otomatik recovery
  • ortak platform ihtiyacı
  • scaling ihtiyacı
  • birden fazla ürün ekibi

Küçük ekip için Kubernetes: ne zaman fazla gelir? rehberi bu kararı operasyon maliyetiyle birlikte ele alır.

Operasyon maliyeti farkı

Docker Compose daha az moving part içerir.

Kubernetes'te ise şu katmanlar yönetilir:

  • cluster lifecycle
  • node
  • networking
  • storage
  • RBAC
  • certificate
  • upgrade
  • ingress/gateway
  • observability

Bu nedenle Kubernetes yalnız altyapı maliyeti değil, ekip zamanı da tüketir.

TCO hesabında platform operasyonu göz ardı edilmemelidir.

CI/CD açısından fark

Her iki model de CI/CD ile kullanılabilir.

Docker/Compose:

  1. Image build
  2. Registry push
  3. Server'a deploy
  4. Compose update

Kubernetes:

  1. Image build
  2. Registry push
  3. Manifest/Helm update
  4. Deployment rollout
  5. Health/rollout verification

Kubernetes pipeline daha gelişmiş olabilir ancak daha fazla configuration gerektirir.

CI/CD nedir? rehberi deployment automation katmanını ayrı olarak açıklar.

High availability açısından fark

Tek host Docker Compose ortamında host failure tüm workload'u etkileyebilir.

Kubernetes çoklu node cluster ile workload'ları farklı failure domain'lere dağıtabilir.

Ancak Kubernetes kullanmak otomatik olarak HA anlamına gelmez.

Şunlar ayrıca doğru tasarlanmalıdır:

  • control plane
  • node spread
  • database
  • storage
  • load balancer
  • DNS

Security açısından hangisi daha iyi?

İki platform da güvenli veya güvensiz yapılandırılabilir.

Docker tarafında:

  • image security
  • host access
  • secrets
  • network
  • daemon privilege

önemlidir.

Kubernetes'te bunlara ek olarak:

  • RBAC
  • ServiceAccount
  • NetworkPolicy
  • admission policy
  • cluster API
  • etcd

gibi katmanlar bulunur.

Daha fazla kontrol alanı aynı zamanda daha fazla yanlış yapılandırma riski anlamına gelir.

Docker'dan Kubernetes'e ne zaman geçilmeli?

Aşağıdaki problemlerin birkaçını sürekli yaşıyorsanız migration değerlendirilebilir:

  • Tek host kapasitesi yetmiyor
  • Servisleri farklı node'lara dağıtmak gerekiyor
  • Manuel recovery sıklaşıyor
  • Deployment standardı bozuluyor
  • Birden fazla ekip aynı platformu kullanıyor
  • Autoscaling gerekiyor
  • Environment sayısı büyüyor

Kubernetes'e geçiş "trend" nedeniyle değil, mevcut operasyon modelinin sınırları nedeniyle yapılmalıdır.

Geçiş doğrudan olmak zorunda mı?

Hayır.

Geçiş yolu şu şekilde olabilir:

Docker → Docker Compose → standardize CI/CD → managed container platform → Kubernetes

Her ekip bütün aşamaları geçmek zorunda değildir.

Basit model ihtiyacı karşılıyorsa orada kalmak yanlış değildir.

Managed Kubernetes neyi değiştirir?

Managed Kubernetes control plane operasyonunun bir bölümünü sağlayıcıya devredebilir.

Ancak ekip hâlâ:

  • workload
  • node sizing
  • deployment
  • backup
  • observability
  • RBAC
  • cost

sorumluluklarını yönetir.

Bu nedenle managed Kubernetes, Docker Compose kadar basit bir operasyon modeline dönüşmez.

Dynamis'te Docker vs Kubernetes kararı

Dynamis'in DevOps hizmeti kapsamında her container workload'u Kubernetes'e taşımıyoruz.

İlk değerlendirmede:

  • servis sayısı
  • node sayısı
  • deployment sıklığı
  • availability hedefi
  • scaling ihtiyacı
  • stateful workload
  • ekip kapasitesi
  • platform ownership

incelenir.

Docker/Compose yeterliyse daha karmaşık platform önerilmez.

Kubernetes gerçek operasyon problemini çözüyorsa cluster mimarisi, CI/CD ve monitoring birlikte tasarlanır.

Hızlı karar tablosu

DurumTercih
Local developmentDocker
Tek containerDocker
Tek host, birkaç servisDocker Compose
Basit SaaS, düşük trafikDocker Compose
Çoklu nodeKubernetes
Otomatik recoveryKubernetes
Yatay autoscalingKubernetes
Ortak platform standardıKubernetes
Küçük ekip, operasyon kapasitesi düşükÖnce Docker/Compose
Platform ekibi varKubernetes değerlendirilebilir

Sırada ne var

Kaynaklar

Kaynaklar

  1. 1.
    Container RuntimesThe Kubernetes Authors · 2026-09-21
  2. 2.
    Dockershim Removal FAQThe Kubernetes Authors · 2026-09-21
  3. 3.
    Docker ComposeDocker Docs · 2026-09-21
  4. 4.
    Use Compose in productionDocker Docs · 2026-09-21

Sık sorulan sorular

Kubernetes ile Docker arasındaki fark nedir?

Docker konteyner image oluşturma ve container çalıştırma ekosistemidir; Kubernetes ise çok sayıda container workload'unu cluster üzerinde orkestre eder. Kubernetes 1.24'ten beri Docker Engine ile doğrudan dockershim entegrasyonunu kullanmaz; CRI uyumlu runtime'larla çalışır.

Kubernetes kullanmak için Docker gerekli mi?

Hayır. Kubernetes, node üzerinde Container Runtime Interface uyumlu bir container runtime kullanır. containerd ve CRI-O yaygın örneklerdir. Docker ile oluşturulan OCI uyumlu container image'ları Kubernetes üzerinde yine çalıştırılabilir.

Docker Compose yerine Kubernetes ne zaman kullanılmalı?

Tek sunucuda çalışan birkaç servis, sınırlı trafik ve basit operasyon ihtiyacında Docker Compose yeterli olabilir. Çoklu node, otomatik recovery, yatay ölçekleme, ortak deployment standardı veya daha güçlü platform ihtiyaçları oluştuğunda Kubernetes değerlendirilebilir.

Küçük ekip için Docker mı Kubernetes mi?

Küçük ekipte varsayılan olarak daha basit çözüm tercih edilmelidir. Tek uygulama veya az sayıda servis için Docker ve Compose yeterli olabilir. Kubernetes ancak operasyonel ihtiyacı gerçekten karşılıyorsa ve cluster lifecycle sahiplenilebiliyorsa anlamlı hale gelir.

Docker image Kubernetes'te çalışır mı?

Evet. Docker ile oluşturulan OCI uyumlu container image'ları Kubernetes'te kullanılan containerd veya CRI-O gibi runtime'lar tarafından çalıştırılabilir. Kubernetes'in dockershim'i kaldırmış olması Docker image formatının kullanılamadığı anlamına gelmez.

Dynamis Teknoloji

Kararı sizin yerinize hesaplayan bir ekip.

Raff platformunu geliştiren ve işleten mühendisler. Ankara merkezli, KVKK uyumlu, 7/24 Türkçe destek.

  1. Açıklayıcı · DevOps ve KubernetesKubernetes nedir? Ne işe yarar ve ne zaman kullanılmalı?Kubernetes nedir, nasıl çalışır ve ne işe yarar? Pod, node, cluster, control plane, Service, scaling, self-healing ve Docker farkını production odaklı öğrenin.9 dk
  2. Rehber · DevOps ve KubernetesKüçük ekip için Kubernetes: ne zaman fazla gelir?Kubernetes küçük ekip için ne zaman anlamlı, ne zaman fazla? Tek uygulama, HA, deployment sıklığı, managed Kubernetes, operasyon sahipliği ve gerçek TCO ile karar verin.8 dk
  3. Rehber · DevOps ve KubernetesKubernetes'e geçiş: 14 günde üretime hazır cluster planıKubernetes'e geçişi 14 günlük pilot çerçevesiyle planlayın: uygulama hazırlığı, Gateway API, stateful kararları, gözlemlenebilirlik, GitOps, cutover ve rollback.8 dk