"DOCKER" sözcüğü birkaç şeyi birden ifade eder; bu açık kaynak topluluk projesi, açık kaynak projesinden olan Docker Inc. bu projenin ana destekçisi olan şirket ve şirketin resmi olarak desteklediği araçları içerir. Teknolojilerin ve şirketin aynı adı paylaşması kafa karıştırıcı olabilir.
İşte size hızlı bir açıklama:
DOCKER ile kapsayıcılara son derece hafif, modüler sanal makineler gibi davranabilirsiniz. Ayrıca bu kapsayıcılarla cloud için uygulamalarınızı en uygun hale getirebilir, ortamdan çevreye uyarlayabilir, dağıtabilir, kopyalayabilir veya taşıyarak esneklik kazanabilirsiniz.
[Linux'u Anlamak yazımızı okumak için tıklayın.]
Docker teknolojisi, bağımsız olarak çalışmak amacıyla işlemleri ayrıştırmak için Cgroups ve namespaces gibi Linux çekirdeği ve Linux çekirdeğinin özelliklerini kullanır. Bu serbestlik, kapsayıcıların çoklu süreçleri yönetme kabiliyeti ve altyapınızı daha iyi kullanabilmeniz için uygulamaları birbirinden ayrı olarak ayrı sistemlerle koruyacaktır.
Docker dâhil olmak üzere kapsayıcı araçlar, görüntü tabanlı bir dağıtım modeli sunar. Bu bir uygulamayı veya hizmet kümesini birden çok ortamdaki tüm bağlayıcıları ile paylaşmayı kolaylaştırır. Ayrıca Docker, bu kapsayıcı ortamı içinde uygulamayı (veya bir uygulamayı oluşturan işlemlerin bir araya getirilmiş kümelerini) dağıtmayı da otomatikleştirir.
Docker'ı kullanıcı dostu ve benzersiz kılan Linux kapsayıcılarının üzerine inşa edilen bu araçlar; kullanıcılara, uygulamalara benzersiz erişim, hızlı bir şekilde dağıtım yapma, sürümleri ve sürüm dağılımını kontrol etme olanağı tanır.
Hayır. Docker teknolojisi başlangıçta LXC teknolojisinin üzerine inşa edilmişti — çoğu insan “geleneksel” Linux kapsayıcılarıyla ilişkilendiriyordu - o zamandan beri bu bağlılıktan uzaklaşıyordu. LXC hafif bir sanallaştırma olarak faydalıydı, ama büyük bir geliştiriciye veya kullanıcı deneyimine sahip değildi. Docker teknolojisi, kapsayıcıları çalıştırma yeteneğinden daha fazlasını getiriyor - aynı zamanda kapsayıcıları oluşturma, görüntüleri gönderme ve görüntülerin (diğer şeylerin arasında) varyasyonlarını yaratma sürecini de kolaylaştırıyor.
Geleneksel Linux kapsayıcıları, birden çok işlemi yönetebilen bir başlangıç sistemi kullanır. Bu tüm uygulamaların tek olarak çalışabileceği anlamına gelir. Docker teknolojisi ise uygulamaların farklı süreçlere ayrılmasını ve bunu yapabilmelerini sağlayan araçları sağlar. Bu taneli yapının avantajları vardır.
Docker'ın konteynerlaştırmaya yaklaşımı bir uygulamanın bir parçasını indirme, güncelleme veya onarma, tüm uygulamayı gereksiz yere kullanmadan gerçekleştirme becerisine odaklanır. Bu mikro servis tabanlı yaklaşıma ek olarak, birden fazla uygulama arasındaki işlemleri, hizmet odaklı mimarinin (SOA) çalışması şeklinde paylaşabilirsiniz.
Tüm Docker görüntü dosyaları bir dizi katmandan oluşur. Bu katmanlar tek bir görüntüde birleştirilir. Görüntü değiştiğinde ya da bir kullanıcı çalıştırma veya kopyalama gibi bir komut belirttiğinde yeni bir katman yaratılır.
Docker yeni katmanlar için bu katmanları tekrar kullanır, bu da yapım sürecini çok daha hızlı hale getirir. Ara değişiklikler görüntüler arasında paylaşılır; hız, boyut ve verimliliği daha da artırır. Katmanlaşmanın doğası sürüm kontrolüdür. Her defasında yeni bir değişiklik olduğunda, esasen yerleşik bir değiş-tokuşa sahip olursunuz - kapsayıcı görüntüleriniz üzerinde tam kontrol sahibi olursunuz.
Belki de katmanlaşmanın en iyi yanı geri döndürme kabiliyetidir. Her resmin katmanları vardır. Bir resmin mevcut yinelemesini beğenmediniz mi? Önceki sürüme geri döndürün. Bu hızlı bir gelişim yaklaşımını destekler, sürekli entegrasyon ve dağıtım (CI / CD) araç perspektifinden bir gerçeklik yaratmaya yardımcı olur.
Her işlem için bir kapsayıcı oluşturarak bu benzer süreçleri yeni uygulamalarla hızlı bir şekilde paylaşabilirsiniz. Ayrıca bir işletim sistemine bir kapsayıcı eklemek veya taşımak için önyükleme yapması gerekmediğinden dağıtım süreleri büyük ölçüde kısalır. Bunun da ötesinde dağıtım hızıyla, konteynerleriniz tarafından yaratılan verileri endişe duymadan kolayca ve uygun maliyetle oluşturabilir veya yok edebilirsiniz.
Yani Docker teknolojisi verimliliğe daha çok önem veren granüler, kontrol edilebilir, mikro servis tabanlı bir yaklaşımdır.