# Konteyner vs Sanal Makine

Adres: https://softwaredictionary.org/tr/karsilastirma/container-vs-virtual-machine
Son güncelleme: 2026-09-30

Kısaca: Konteyner uygulamayı bağımlılıklarıyla paketler, host'un çekirdeğini paylaşır; sanal makine kendi işletim sistemini çalıştırır, daha iyi yalıtır ama ağırdır.

## Konteyner (container) ile sanal makine arasındaki fark nedir?

Konteyner, uygulamayı ve ihtiyaç duyduğu her şeyi, kütüphaneleri ve yapılandırmayı içeren bir imajdan çalışan yalıtılmış bir süreç ya da süreçler grubudur. Sanal makine (VM) ise sanal CPU'lar, bellek, diskler ve kendi konuk işletim sistemiyle tam olarak taklit edilmiş bir bilgisayardır; fiziksel ana makinede bir hypervisor tarafından yönetilir.

Fark, sanallaştırma düzeyindedir. VM'ler donanımı sanallaştırır; bu yüzden her biri tam bir işletim sistemi çekirdeği açar, gigabaytlarca disk kaplar ve başlaması çoğu zaman on saniyeler sürer. Konteynerler işletim sistemini sanallaştırır: Linux'ta süreçleri yalıtmak için namespace ve cgroup denen çekirdek özelliklerini kullanırlar; bu yüzden tek bir çekirdeği paylaşır, genellikle bir saniyeden kısa sürede başlar ve tek bir makineye yoğun biçimde sığar.

Genellikle aralarında seçim yapılmaz, birleştirilirler. Bulutta konteynerlerin çoğu aslında VM'lerin içinde çalışır; VM'ler müşteriler arasında güçlü güvenlik sınırını sağlarken konteynerler uygulamalar için hızlı ve taşınabilir paketleme sunar. Hafif mikro VM'ler ikisini harmanlar ve ek yalıtım için her konteynere ya da fonksiyona kendi küçük VM'ini verir.

Sık yapılan bir yanlış, konteynerlerin aynı yalıtıma sahip daha küçük VM'ler olduğu düşüncesidir. Konteynerler ana makinenin çekirdeğini paylaştığı için bir çekirdek açığı hepsini etkileyebilir ve bir Linux konteyneri Windows ya da macOS çekirdeğinde yerel olarak çalışamaz; bu sistemlerdeki konteyner araçları arka planda sessizce bir Linux VM'i çalıştırır.

| Özellik | Konteyner | Sanal Makine |
| --- | --- | --- |
| Neyi sanallaştırır | İşletim sistemini: süreçler, dosyalar, ağ | Donanımı: CPU, bellek, diskler, ağ kartları |
| İşletim sistemi | Ana makinenin çekirdeğini paylaşır | Kendi tam konuk işletim sistemini çalıştırır |
| İmaj boyutu | Megabaytlardan birkaç yüz megabayta | Genellikle birkaç gigabayt |
| Başlatma süresi | Milisaniyelerden birkaç saniyeye | Saniyelerden dakikalara |
| Yalıtım | Süreç düzeyinde; çekirdek paylaşıldığı için daha zayıf | Donanım düzeyinde; hypervisor'ın uyguladığı güçlü bir sınır |
| Yoğunluk | Ana makine başına düzinelerce ile yüzlerce | Ana makine başına bir avuçtan düzinelere |
| Yöneten | Çoğu zaman Kubernetes'in orkestre ettiği bir konteyner çalışma ortamı | Çıplak donanımda ya da bir ana makine işletim sisteminde çalışan hypervisor |
| En uygun olduğu yer | Mikroservisler, CI işleri ve taşınabilir uygulama dağıtımları | Farklı işletim sistemleri, eski uygulamalar, güçlü kiracı yalıtımı |

## Konteyner şu durumlarda doğru seçim

- Birçok küçük servisin hızlı ve tekrarlanabilir dağıtımlarını istiyorsunuz.
- Uygulamalar dizüstü bilgisayarda, CI'da ve canlıda aynı çalışmalı.
- Ölçeklemek için örnekleri saniyeler içinde başlatıp durdurmanız gerekiyor.

## Sanal Makine şu durumlarda doğru seçim

- Ana makineden farklı bir işletim sistemine ya da çekirdeğe ihtiyacınız var.
- Güvenilmeyen kiracıların iş yükleri güçlü yalıtım gerektiriyor.
- Tam bir makine bekleyen eski bir yazılım çalıştırıyorsunuz.

## Sık sorulan sorular

**Konteynerler sanal makinelerden daha mı az güvenli?**

Yalıtımları daha zayıftır; çünkü VM'lerin her birinin kendi çekirdeği varken konteynerler bir çekirdeği paylaşır. Konteynerler iyi uygulamalarla yine güvenle çalıştırılabilir, ama bir çekirdek kusuru ana makinedeki her konteyneri etkiler.

**Konteynerler bir sanal makinenin içinde çalıştırılabilir mi?**

Evet ve bulutta en yaygın kurulum budur: VM'ler müşteriler arasında yalıtım sağlar, konteynerler de uygulamaları paketlemek ve ölçeklemek için onların içinde çalışır.

**Docker bir sanal makine midir?**

Hayır. Docker, konteyner oluşturmak ve çalıştırmak için bir araçtır. macOS ve Windows'ta arka planda hafif bir Linux VM'i çalıştırır; çünkü Linux konteynerleri bir Linux çekirdeğine ihtiyaç duyar.

---

Software Dictionary: https://softwaredictionary.org/tr · https://softwaredictionary.org/tr/llms.txt
