Container ve sanal makine
- Docker & Kubernetes kursu
- Başlangıç
- Ders 2/82
- 4 dk
Container ile sanal makine arasındaki farkları öğrenirsin.
Container ve sanal makine
Bir sanal makine (VM), hipervizör üzerinde kendi işletim sistemi çekirdeğiyle tam bir bilgisayar taklit eder; açılması dakikalar sürer, boyutu gigabaytlarla ölçülür. Container ise ana makinenin çekirdeğini paylaşır; yalnızca uygulama ve kütüphanelerini taşır. Bu yüzden saniyeler içinde başlar ve megabaytlarla ölçülür.
VM: Uygulama | Kütüphaneler | Misafir işletim sistemi | Hipervizör | Donanım
Container: Uygulama | Kütüphaneler | Docker Engine | Ana işletim sistemi | DonanımYalıtım ne kadar güçlü?
Container yalıtımı Linux çekirdeğinin iki özelliğine dayanır: namespace'ler (süreç, ağ, dosya sistemi görünümünü ayırır) ve cgroup'lar (CPU ve bellek sınırı koyar). Çekirdek ortak olduğu için yalıtım VM'den zayıftır; güvenilmeyen kodu çalıştırmak için VM ya da gVisor gibi ek katmanlar tercih edilir.
docker run --memory 256m --cpus 0.5 nginx # cgroup ile sınırlandırmaUygulama Kaynak sınırlı container
nginx image'ını en fazla 512m bellek ve 1 CPU ile çalıştıran komutu yaz.
Başlangıç kodu
# buraya yazBeklenen çıktı
/docker-entrypoint.sh: Configuration complete; ready for start up
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Container'ların sanal makinelerden hızlı başlamasının nedeni nedir?
- Ana makinenin çekirdeğini paylaşırlar; ayrı bir işletim sistemi açmazlar Doğru cevap
- Daha az RAM kullanan dillerle yazılırlar
- Yalnızca Linux'ta çalışırlar
- İnternete bağlanmazlar
Açıklama: VM bir misafir işletim sistemini baştan açar; container yalnızca bir süreç başlatır.
2 Container'ın belleğini 256 MB ile sınırla.
docker run --____ 256m nginx
docker run --memory 256m nginx
Açıklama: --memory bir cgroup sınırı koyar.
3 Özellikleri eşleştir.
| Kavram | Anlamı |
|---|---|
sanal makine |
Kendi çekirdeği var |
container |
Çekirdeği paylaşır |
namespace |
Görünümü yalıtır |
cgroup |
Kaynak sınırı koyar |