Docker aslında bir sanallaştırma platformudur. Ancak sanal makinalardan farklı olarak işletim sistemini değil uygulamaları sanallaştırarak bizlere hızlı bir uygulama sanallaştırma ortamı sunmaktadır. Vmware ThinApp ya da Citrix XenApp gibi benzer uygulama sanallaştırma platformlarını düşünebilirsiniz ama Docker open-source bir platform olup distributed applications ortamları içinde kullanılabilmektedir. Ayrıca bu platform özellikle Linux dünyasında iyi bir yer kazanmışa benziyor. Etkili, hızlı bir çözüm olarak görüldüğünden özellikle AWS, Azure gibi pek çok cloud servisi de bu durumun farkında olmalı ki bizlere bu ortamı sağlayabileceğimiz hizmetler ve ürünler sunuyorlar. Docker’da elbette kendi platformunu kullanıcılara sunmakta.
https://www.docker.com/pricing
Docker sistemini kullanırken en çok duyacağınız kelime container olacaktır. Container nedir? Sanal makina ile arasındaki farklar nelerdir?
Yukarıdaki grafikte iki farklı server yapısı görmektesiniz. Soldaki sanallaştırılmış bir server, sağdaki geleneksel Linux kurulu tek işletim sistemi yapısına sahip bir server. Anlaşılabilir olması için böyle bir örnek verdim. Yoksa Docker sanallaştırılmış bir ortamda sanal bir işletim sistemi üzerinde de çalışabilmektedir. Ayrıca Linux dışında Windows ve OSX işletim sistemlerinde de çalışabilmektedir.
Mevcut bir serverda sanallaştırma yaparken üzerine Type 1 (ESXi türü bir hypervisor kurulumu) yada Type 2 türü (İşletim sistemi kurulup (Windows Server gibi) üzerine hypervisor (Hyper-V) kurulumu) sanallaştırma katmanı kurulup bunun üzerine sanal işletim sistemlerimizi kurarız. Soldaki örnekte en alt katmanda Type-2 kurulu bir yapı görüyoruz.
Bu yapının üzerinde uygulamalarımızı çalıştırmak istediğimizde önceki sanal OS ortamlarını hazırlayıp, güncelleştirmeleri kurup, güvenlik ve diğer ayarları yapıp daha sonra uygulamaların çalışması için gerekli yazılımları (dependencies) kurar hazırlarız ve uygulamamızı çalıştırmaya başlarız. Özellikle birbirlerinden ayrı olmalarını istediğimiz uygulamalar için ayrı ayrı işletim sistemleri hazırlayıp bu işlemleri yaparız. Hypervisor bizim için server kaynaklarını istediğimiz ölçüde bu işletim sistemlerine dağıtır ve uygulamalarımız çalışır. Bu bugüne kadar bildiğimiz senaryo bu.
Sağdaki örnek görülen Docker sistemi ve containerlar ise şöyle çalışır. Konsept olarak tüm uygulamalar aynı işletim sistemi altında çalışır ancak hepsi birbirinde bağımsız olarak hareket eder ve izole edilmiştir. Solda sanal OS yaratıyoruz. Sağda ise uygulamalarımız için container.
Docker için işletim sistemi altyapısı olarak çoğunlukla Linux kullanılmaktadır. Ubuntu, CentOS gibi. Ancak Windows ve OSX işletim sistemlerinde de çalışabilmektedir ama Linux genellikle tercih edilmektedir. Bu platform için piyasada ESXi gibi bir ürün bulunmamaktadır. İşletim sistemini kurduktan sonra üzerine Docker sisteminizi kurup birbirinde izole containerlar oluşturup uygulamalarınızı çalıştırabilirsiniz. Uygulamalar birbirlerini, dizinlerini dosyalarını vs. görmez. İşletim sistemi üzerinde tek çalışan uygulama kendileri sanarlar. Bildikleri tek şey hangi işletim sistemi üzerinde çalıştıklarıdır.
Bu şekilde her uygulama için ayrı bir OS ihtiyacımız olmamaktadır. Ancak uygulamaların çalışabilmesi için daha önce söylediğim gibi çeşitli gereksinimler mevcut olabilir. (dependencies) Örneğin bir web uygulaması için PHP5 gerekebilir. Aynı OS altında çalışan başka bir web uygulaması içinde PHP4 gerekebilir. Güzel olan taraf her container için gereken bu şeyleri kurabilirsiniz. Bunlarda aynı şekilde birbirlerinden bağımsız olarak çalışırlar. Bir container başka bir container için gerekli olan şeylere erişemez. Biz istemediğimiz sürece. Bu durumda izole edilmiştir.
Tek bir işletim sistemi üzerinde çalıştığımız için elbette kurulu olan uygulamalar bu işletim sistemi üzerinde çalışabilecek şekilde dizayn edilmiş olmalıdır. Ama Docker platformunun bize olan faydalarını şöyle düşünebiliriz. Ubuntu Linux işletim sistemi kurulu güçlü bir serverımız var ve bu server üzerinde 20 adet Linux platformu için uyumlu uygulama çalıştırmak istiyoruz.
1)Hypervisor ve virtual OS kısmına ihtiyacımız bulunmamaktadır. (Tabii ki Docker geleneksel yapı dışında istersek sanal yapımız üzerinde sanal bir serverda da çalışabilir. Sanal OS içinde uygulama sanallaştırma platformu kurabiliriz.)
2)Her uygulama için ayrı bir OS kurmak zorunda değiliz.
3)Tek bir işletim sistemi üzerinde çalıştığımız için bakım maliyetlerimiz ve zamanımız düşer. Güncelleme, güvenlik ve konfigürasyon işlemlerini sadece tek bir OS için yapmış oluruz.
4)Hızlı bir dağıtım (deployment) ortamımız olur. Aynı OS altında çalışan başka bir uygulama çalıştırmak istediğimizde ayrı bir sanal OS kurup hazırlama ihtiyacımız kalmaz. Çalışan işletim sistemimiz zaten var. 🙂 Sadece container yaratıp gereksinim duyacağımız yazılımları ekleyip çalıştırmak kalıyor.
5) Bir uygulamada sorun olduğunda ya da çalıştırmak istediğimizde sanal OS yeniden başlatmak, beklemek, vs. gibi durumlar ortadan kalkar. Bizim işimiz sadece container ile.
Bu kadar şeyi anlattıktan sonra elbette bu platformun bazı dezavantajları da mevcuttur. Sanallaştırma ortamımızda farklı işletim sistemlerini aynı ortamda barındırabiliyoruz. Docker sisteminde ise dediğim gibi tek bir OS üzerinde çalıştığımız için uygulamalarımız bu OS için dizayn edilmiş olmalıdır. Linux üzerinde çalışabilecek uygulamalarımız için Linux OS Kurulu bir işletim sistemi, Windows için ayrı, Mac OSX için ayrı olmalıdır.
Sanallaştırma ortamları zamanla olgunlaştığı için pek çok özellikleri zamanla bizlere sunmaya başlamıştır. Örneğin sanal OS makinalarımızı bir sunucudan başka bir sunucuya migrate edebiliriz. Bunu canlı olarak yapabiliriz. (Live migration) Failover-redundancy ortamlar kurabiliriz. Docker ortamında ise uygulamamızı ya da container migrate edebiliriz. Ama bunu canlı olarak yapamayız. Docker ortamı bu konularda henüz olgunlaşmadı. Ama zaman geçtikçe daha da gelişiyor ve bize sunduğu avantajları göz ardı edilemez. Tabii tekrar etmek isterim ki Docker sanal sunucularımız üzerinde çalışabildiği için kısmi olarak sunucu sanallaştırma tarafında bizlere sunulan bu HA (High Availability) özelliklerinden Docker platformlarımız içinde faydalanabiliriz.
Daha detaylı bilgi için;
https://www.docker.com/
Umarız sizler için yararlı bir makale olmuştur. Okuduğunuz için teşekkür ederim.
Önder Nuray Bir e-posta göndermek 20/09/2015
1 3 dakika okuma süresi
Facebook Twitter LinkedIn E-Posta ile paylaş Yazdır
Paylaş
Facebook Twitter LinkedIn E-Posta ile paylaş Yazdır
Önder Nuray
Depolama Teknolojileri Bölüm 7 - SAS Serial Attached SCSI
Windows Imaging and Configuration Designer
İlgili Makaleler
VMware Workstation Player 16 Kurulumu ve Temel Kullanım
05/07/2021
VMware Workstation PRO 16 Kurulumu
04/02/2021
VMware Horizon Server 7.11 – Bölüm 3 vCenter ve Eventlog Konfigürasyonu
11/05/2020
VMware Horizon Server 7.11 – Bölüm 2 Replication Server
12/04/2020
Bir Yorum
refik yorgancı dedi ki:
25/03/2020, 17:53
Teşekkürler
Cevapla
Bir cevap yazın Cevabı iptal et
E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir
Yorum
İsim *
E-posta *
İnternet sitesi
Δ
Göz Atın
Kapalı
Virtualization
VMware Horizon Server 7.11 – Bölüm 1 Connection Server Kurulumu
26/10/2019
© Telif Hakkı 2021, Tüm Hakları Saklıdır | ÇözümPark | Radore Tarafından Barındırılır
Facebook
Twitter
YouTube
Instagram
Facebook Twitter LinkedIn WhatsApp Telegram
Başa dön tuşu
Kapalı
Haberler
Blog
Makaleler
Forum
Video
Etkinlik
Eğitim
Sözlük
Biz Kimiz?
Hizmetlerimiz
Popular Posts
Office 365
Microsoft Teams Toplantıları İçin 10 İpucu
27/04/2019
Windows 0x0000011b Ağ Yazdırma Hatası Nasıl Düzeltilir
21/09/2021
Yasaklı Sitelere Giriş İçin DNS Ayarları
11/07/2021
Microsoft, Desteklenmeyen Bilgisayarlar İçin Windows 11 TPM Bypass Yöntemi Paylaştı
06/10/2021
Açık Kaynak İşletim Sistemi Nedir?
21/01/2021
Most Commented
27/04/2019
Microsoft Teams Toplantıları İçin 10 İpucu
15/04/2018
Windows 10 Üzerinde Kali Linux Kullanımı
04/05/2020
Acı Kaybımız, Uğur Demir’ i Kaybettik
20/12/2019
Bir Veritabanı Sunucusuna Brute Force ile Saldırmak ve Sunucuyu Savunmak
19/07/2019
Windows 10 Pro Üzerinde Kali Linux Kurulumu
23/02/2020
Adli Bilişim’de İmaj Alma Yöntemleri Bölüm 1
Recent Comments
Revaha Bektaş
Hocam elinize sağlık, bir şeyi merak ediyorum GP ile setupı...
Hakan Uzuner
Merhaba, veriler bir kere şifrelenmiş ise geriye dönük kurta...
ömer
Merhabalar. Eskiye göre çok faydalı bir makale olmuş öncelik...
Sait ORHAN
Teşekkür ederim hocam....
Hakan Uzuner
Eline sağlık....
Toplanan veriler ile ilgili detaylara Çerez Politikası & Yasal & KVKK sayfasından ulaşabilirsiniz. KABUL ET
Çerez Politikası & Yasal & KVKK
Close
Gizliliğe Genel Bakış
Bu web sitesi, web sitesinde gezinirken deneyiminizi geliştirmek için çerezleri kullanır. Bu çerezlerden, gerektiği gibi kategorilere ayrılmış olan çerezler, web sitesinin temel işlevlerinin çalışması için gerekli olduğundan tarayıcınızda saklanır. Bu web sitesini nasıl kullandığınızı analiz etmemize ve anlamamıza yardımcı olan üçüncü taraf çerezleri de kullanıyoruz. Bu çerezler tarayıcınızda yalnızca sizin izninizle saklanacaktır. Ayrıca bu çerezleri devre dışı bırakma seçeneğiniz de vardır. Ancak bu çerezlerden bazılarını devre dışı bırakmanın tarama deneyiminizi etkileyebilir.
Necessary
Necessary
Always Enabled
Web sitesinin düzgün çalışması için çerezler kesinlikle gereklidir. Bu kategori yalnızca web sitesinin temel işlevlerini ve güvenlik özelliklerini sağlayan çerezleri içerir. Bu çerezler herhangi bir kişisel bilgi depolamaz.
SAVE & ACCEPT
Kapalı
Arama yap ...
Kapalı
Giriş Yap
Unuttunuz mu?
Beni hatırla
Giriş Yap
Hesabınız yok mu?
Reklam Engelleyici Algılandı
ÇözümPark Bilişim Portalı gönüllü bir organizasyon olup tek gelir kaynağı reklamlardır. Bu nedenle siteyi gezerken lütfen reklam engelleme eklentinizi kapatın veya Çözümpark web sitesi için izin tanımı yapın. Anlayışınız için teşekkürler.