Docker Nedir ? Neden Kullanılır ?
Docker işletim sistemi imajlarını versiyonlayan, Apache versiyon 2 lisanslı, Go dili ile yazılmış bir sanallaştırma ve konteyner teknolojisidir.
İşletim Sistemi İmajı Nedir?
Docker Linux türevinden işletim sistemleri üzerinde çalışan bir uygulamadır. Buradaki söylenen imaj ise, Linux türevi işletim sistemlerinden türetilmiş, boyut olarak küçültülmüş, Docker sanallaştırma ortamında çalışabilir işletim sistemi birimleridir.
Docker’ın sanallaştırma yapısı, klasik bilinen sanal makinelerden (VirtualBox, Vmware vb.) farklı olarak bir Hypervisor katmanına sahip değildir. Bunun yerine Docker, Docker Engine üzerinden, konak işletim sistemine erişmekte ve sistem araçlarını paylaşımlı olarak kullanmaktadır. Böylece klasik VM’lere göre daha az sistem kaynağı tüketmektedir.
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 | Docker |
---|---|---|
OS |
Tam işletim sistemi |
Küçültülmüş işletim sistemi imajı |
Izolasyon |
Yüksek |
Daha düşük |
Çalışır hale gelmesi |
Dakikalar |
Saniyeler |
Versiyonlama |
Yok |
Yüksek |
Kolay paylaşılabilirlik |
Düşük |
Yüksek |
Her iki sanallaştırma yaklaşımının birbirlerine göre avantaj ve dezavantaj durumları söz konusudur. Fakat, Docker yönünde baktığımızda aşağıda açıklanan avantajların çok kritik olduğunu söylemek gerekir.
Docker kolay çalışır
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.
Versiyonlama
Docker’in en vurucu özelliklerinden birisi hiç şüphesiz versiyonlanabilme özelliğidir. Docker, kullandığı işletim sistemi imajlarının farklı hallerini kayıt altında tutmamıza olanak sunmaktadır. Bu durum ise, hazırlanan imajların kolaylıkla kullanıcılar arasında paylaşılmasına kapı aralamaktadır.
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.
Docker’in Hedefi
Yıllar beri yazılım projeleri geliştiriyoruz. Her uygulamanın kendine has bağımlılıkları bulunuyor. Uygulamaların kendi bağımlılıkları yanında diğer önemli bir ihtayaç ise uygulamaların çalışacağı işletim sistemlerinin hazır hale getirilmesi ve yönetilmesi sürecidir.
Docker işte tam bu noktada görev alarak, uygulamanın çalı,şabilmesi için gerekli işletim sistemi ortamını hazır hale getirmede, saklamada, versiyonlamada, paylaşmada sunduğu gereçlerle yazılım geliştirimi dışındaki operasyonel işleri inanılmaz kolaylaştırmaktadır.
Uygulamaların koştuğu işletim sistemlerindeki diğer bir gereksinim ise yönetim ihtiyacıdır. Docker, kullanıcılar tarafından hazırlanan işletim sistemi imajlarını, kolaylıkla çalıştırabilmekte, versiyonlaybilmekte ve sistem kaynaklarını (RAM, CPU, Network) kullanıcının belirttiği ölçüde ayırarak yönetebilmektekdir.
Şimdilik bu kadar. Bir sonraki yazımızda Docker’ın kurulumuna ve kullanımına değineceğiz.
Tekrar görüşmek dileğiyle.
2 Comments
Hocam devamını bekliyoruz