Son Konu

docker nedir ? docker ne işe yarar ?

bilgiliadam

Yeni Üye
Katılım
16 Ağu 2017
Mesajlar
1,516,397
Tepkime
31
Puanları
48
Credits
-6
Geri Bildirim : 0 / 0 / 0
Docker, yazılım geliştiriciler ve sistemciler için geliştirilen açık kaynaklı bir sanallaştırma platformudur Docker ile Linux, Windows ve MacOSX üzerinde Linux ve Windows sanal containerler (makineler) çalıştırabilirsiniz Bu platform sayesinde web sistemlerinin kurulumunu, testini ve dağıtımını kolaylıkla gerçekleştirebilirsiniz En önemli özelliği belki de Benim bilgisayarımda çalışıyordu, sunucuda neden çalışmadı acaba?sorununu ortadan kaldırıyor olması


Docker’ın sanallaştırma yapısı, bilinen sanal makinelerden (VirtualBox, Vmware vb) farklı olarak bir Hypervisor katmanına sahip değildir Bunun yerine Docker Engine üzerinden, konak işletim sistemine erişmekte ve sistem araçlarını paylaşımlı kullanmaktadır Böylece klasik VM’lere göre daha az sistem kaynağı tüketmektedir


Docker, LXC sanallaştırma mekanizması üzerine kurulu Bir Docker imajı, container denilen birimlerde çalıştırılıyor Her bir container bir süreç (process) kullanıyor Bir makinada gücüne bağlı olarak binlerce docker containerı birden çalışabilir Container imajları ortak olan sistem dosyalarını paylaşıyorlar Dolayısıyla disk alanından tasarruf ediliyor Şekilde görüldüğü gibi uygulama containerları ortak bin(exe) ve kütüphaneleri kullanıyorlar Ancak klasik sanal makine sistemlerinde her bir uygulama için ayrı işletim sistemi ve kütüphane dosyaları ayrılmak zorunda



Docker, yazılımların kurulu son hallerinin imajını alıp tekrar kullanılabilir olmasını sağlıyor Bu imajları bir kere oluşturup diğer sunuculara gönderebilirsiniz ya da her sunucuda farklı imajlar oluşturabilirsiniz Dockerfile adı verilen talimat dosyalarına bakarak her sunucu aynı imajı yeniden inşa edebilir Bu sayede manuel bir müdahale gerekmez


Bir diğer özellik ise Dockerfile ve imajların geliştirilebilir olması Talimatlara birkaç adım daha eklemek isterseniz en baştan komutları vermek yerine kaldığı son yerden devam ediyor ve bu da zaman kazandırıyor


7Klasik VM vs Docker

VM’ler her bir çalışan örneği için full bir işletim sistemine sahiptir Docker ise hem full işletim sistemi yerine boyut olarak küçültülmüş imajları kullanır hem de konak işletim sistemi kütüphanelerini paylaşımlı olarak kullanır Fakat bu durum, Docker’i sistem kaynak tüketim dostu yaparken, izolasyon seviyesini ise düşürmektedir Bunlarla birlikte aşağıdaki karşılaştırmaları yapabiliriz

Kıyas türüVM DockerOS Tam işletim sistemi Küçültülmüş işletim sistemi imajıIzolasyon YüksekDaha düşükÇalışır hale gelmesiDakikalarSaniyelerVersiyonlamaYokYüksekKolay paylaşılabilirlikDüşükYüksek



Her iki sanallaştırma yaklaşımın birbirlerine göre avantaj ve dezavantajları mevcut Ancak, Docker yönünden bakıldığında bazı avantajların çok kritik olduğunu söylemek doğru olur


Bunlarında başında kolay çalışması geliyor Docker Hypervisor kullanmadığından, tam yüklü bir işletim sistemi kullanmadığından ve konak sisteme yakın çalıştığından saniyeler içinde çalışır Bir diğeri ise versiyonlamaya yatkınlığı Docker’ın en vurucu özelliklerinden biride versiyonlanabilme özelliği Docker, kullandığı işletim sistemi imajlarının farklı hallerini kayıt altında tutmamıza olanak sağlar Bu durum ise, hazırlanan imajların kullanıcılar arasında paylaşılmasına kapı aralamaktadır Bir başka özelliğe daha değinecek olursak bu da paylaşılabilirlik Kullanıcılar veya dağıtıcılar tarafından hazırlanan işletim sistemi imajları, merkezi sunuculara gönderilebilmekte ve aynı zamanda diğer kullanıcılar tarafından bu merkezi sunuculardan elde edilebilmektedir


Containerların tek bir işletim sisteminde çalışması, akıllara güvenlik sorununu getirmektedir Docker bu konuya yazılımsal çözümler getirmiştir Container içerisinde çalışan uygulamalar başka bir container içerisindeki uygulamayı aksi belirtilmedikçe göremez ve etkileyemezler bir başka deyişle izoledirler
 
Üst Alt