- 01Docker ile Kubernetes doğrudan rakip değildir; Docker container image ve runtime workflow'una, Kubernetes ise cluster-level orchestration'a odaklanır.
- 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.
- 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.
- 04Kubernetes 1.37, CRI uyumlu container runtime gerektirir; containerd ve CRI-O yaygın seçeneklerdir.
- 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.

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:
| Konu | Docker / Compose | Kubernetes |
|---|---|---|
| Container image build | Güçlü | Image build etmez |
| Tek host deployment | Basit | Gereksiz karmaşık olabilir |
| Multi-container app | Compose ile kolay | Native workload objeleri |
| Çoklu node | Sınırlı | Temel kullanım alanı |
| Self-healing | Restart policy düzeyinde | Controller tabanlı |
| Horizontal scaling | Manuel / sınırlı | Native mekanizmalar |
| Service discovery | Compose network | Service/DNS |
| Rolling deployment | Basit araçlarla | Deployment controller |
| Cluster scheduling | Yok | Var |
| Operasyon karmaşıklığı | Daha düşük | Daha 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.
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:
- Image build
- Registry push
- Server'a deploy
- Compose update
Kubernetes:
- Image build
- Registry push
- Manifest/Helm update
- Deployment rollout
- 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
| Durum | Tercih |
|---|---|
| Local development | Docker |
| Tek container | Docker |
| Tek host, birkaç servis | Docker Compose |
| Basit SaaS, düşük trafik | Docker Compose |
| Çoklu node | Kubernetes |
| Otomatik recovery | Kubernetes |
| Yatay autoscaling | Kubernetes |
| Ortak platform standardı | Kubernetes |
| Küçük ekip, operasyon kapasitesi düşük | Önce Docker/Compose |
| Platform ekibi var | Kubernetes değerlendirilebilir |
Sırada ne var
- Kubernetes nedir?: Kubernetes mimarisini detaylı öğrenin.
- Küçük ekip için Kubernetes: Kubernetes'in operasyon maliyetini değerlendirin.
- Kubernetes'e geçiş rehberi: migration kararı verdiyseniz production planını oluşturun.
- DevOps hizmeti: container platformu ve deployment modelinizi değerlendirin.
Kaynaklar
Kaynaklar
- 1.Container RuntimesThe Kubernetes Authors · 2026-09-21
- 2.Dockershim Removal FAQThe Kubernetes Authors · 2026-09-21
- 3.Docker ComposeDocker Docs · 2026-09-21
- 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.