Docker Nedir ?
Docker kısaca aynı işletim sistemi üzerinde birbirinden izole yazılımları sanal olarak çalıştırmamızı sağlayan yapıdır.Bir kere oluştur her yerde kullan mantığı vardır.
Biraz daha açmak gerekirse standart sanallaştırma işlemi yaptığımızı düşünelim.(Hyper-v Vmware gibi sistemlerden herhangi biri)… Elimizde 1 adet fiziksel 3 adet sanal server olduğunu Varsayalım bunlar ;
– SQL server
– APP server
– WEB server
Her server için 2 core 2 GB Ram 20 GB Disk ve işletim sistemi …toplamda 6 adet core 6 gb ram ve 60 GB disk alanı ve 3 adet işletim sistemi lisansını kaynaklarımızdan kullandık.Bu 3 server ında kaynaklardan sadece kullanılan yazılımlar manasında toplam 2 core 2 GB Ram 20 GB Disk alanı kullandığını varsayalım.Ama boşta kalan 4 GB Ram 4 Core ve 40 Gb Disk alanı var ve bunları verdik ve gitti kullanmasak da kullanımda artık bu serverlar tarafından.(Disk alanı hariç tutulabilir bildiğiniz üzere sanalda dynamic yapı da tutulabilir …). ve her Server için doğal olarak bir işletim sistemi çalışıyor ve her birinin bakımı ayrı ayrı yapılıyor.Burada işletim sistemlerinin disklerde kapladığı alanı da söylemekte fayda var tabiki 3xOS disk alanı … Peki Docker ile konumuzun ne alakası var işte bu noktada devreye giren docker oluyor.Docker ın Container teknolojisi sayesinde sadece yazılımı sanallaştırabiliyoruz.Örneğimizden devam edecek olur isek 3 Server da koşturulan yazılımların işletim sistemi 2 Gb Ram 2 Core 20 GB disk alanı ile çalışabileceğinden bahsetmiştik.Docker ise bize şu şekilde çözüm sağlıyor , tek bir işletim sistemi üzerinde Her bir server için ayrı container lar oluşturarak bu containerlara her serverda koşturulan yazılımları yükleyerek ister isek birbirinden izole containerlar ister isek birbiri ile bağlantılı containerlar yaratabiliyoruz bu containerlara ister isek cpu memory gibi kısıtlamaları verebiliyor , birden çok Docker server ını farklı bir makinadan yönetimini gerçekleştirebiliyor lokal server dışında cloud yapılara serverlarımızı entegre edebiliyoruz.Standart sanallaştırmada bir server ımızda problem olduğunda işletim sistemini yeniden başlatmak için harcadığımız zaman içerisinde müşteri kaybı vb durumlar yaşayabiliriz.Docker Container larda ise bir sorun çıktığında bir container ın ayağa kalkması saniyeler hatta mili saniyeler seviyesinde 🙂 Docker gerçekte ubuntu üzerinde çalışır ilk sürümlerinde sadece Linux üzerinde çalışsa da sonraki sürümlerinde Windows Mac üzerinde de çalışmasına olanak sağlanmıştır.
Sanal Makine ve Container Çalışma Mantığı
Bir Sonraki Yazım Ubuntu üzerinde Docker Kurulumu
Umarım faydalı olmuştur ?
Serkan Kaya
Full Stack Java Developer
Merhaba Serkan bey paylaşımınız için teşekkür ederim. Docker üzerinde kurulan programların lisansları üzerindeki etki nedir ? Örnek veriyorum mssql server kurunca express sürümü bazı kısıtlamalara tabii cpu,ram ve boyut vs. Aynı lisansı birden fazla konteynerda kullanmamız münkün mü ?
Gökhan Bey Merhabalar , geç cevap verdiğim için kusuruma bakmayınız.
Microsoft tarafında lisans tarafında bilgim bulunmuyor.Yanlış yönlendirmek istemem.Ancak open source candır diyelim 🙂 (PostgreSql,MySql …)