Blog

Docker Nedir? Avantajları Nelerdir?

3.3.2020

Docker, uygulamalarınızı hızla derlemenizi, test etmenizi ve dağıtmanızı sağlayan bir yazılım platformudur. Docker, yazılımları kitaplıklar, sistem araçları, kod ve çalışma zamanı dahil olmak üzere yazılımların çalışması için gerekli her şeyi içeren container adlı standartlaştırılmış birimler halinde paketler. Docker'ı kullanarak her ortama hızla uygulama dağıtıp uygulamaları ölçeklendirebilir ve kodunuzun çalışacağından emin olabilirsiniz.

Docker Hakkında Temel Bilgiler

Docker ile birşeyler yapmadan önce hangi terimleri içerdiğini ve ne anlama geldiklerini kısaca özetlemekte fayda vardır.

Image : içerisinde uygulamaları barındıran container oluşturmak için kullanılan onceden hazırlanmış paketlerdir.

Container : İmagelardan türetilen host os üzerinde çalışan veya çalışmaya hazır ortamlardır.

Dockerfile : İmage üretmek için önceden belirlenmiş kuralları ve komutları içeren dockera özel dosya yapısı.

DockerHub : Docker imageların paylaşıldığı community deposu diyebiliriz. Bir çok official image barındırılmaktadır.

Aslında bir bakıma docker sanal makineye benziyor denebilir. Ancak, sanal makineden farklı olarak, tamamen sanal bir işletim sistemi oluşturmak yerine, uygulamaların üzerinde çalıştıkları sistemle aynı Linux çekirdeğini kullanmalarına izin verir. Bu da önemli bir performans artışı sağlar ve uygulamanın boyutunu azaltır. En önemlilerinden bir tanesi ise Docker açık kaynak (open source) kodludur.Yani Docker’a herkes katkıda bulunabilir , gelişmesine yardımcı olabilir.

Nasıl Çalışır?

LXC (Linux Container) üzerine kurulu bir teknoloji olan Docker, aynı linux işletim sistemi üzerinde birbirinden izole bir biçimde çalışan konteynerler oluşturmaktadır. Her bir konteyner bir process kullanmakta ve bu sayede konteynerler kolaylıkla çoğaltılabilmektedir. Ayrıca Docker, klasik sanal makinelerden (vmware, virtualbox vb.) farklı olarak bir Hypervisor katmanına sahip değildir. Bunun yerine Docker Engine üzerinden konak işletim sistemine erişerek sistem kaynaklarını paylaşımlı kullanır.

Avantajları Nelerdir?

  • Docker, Hypervisor kullanmaz ve tam yüklü bir işletim sistemi barındırmaz bu sayede saniyeler içinde çalışır ve kullanıma hazır hale gelir.
  • Docker, yazılımlarınızın tüm altyapı gereksinimlerini kod olarak saklar. (versiyonlama) Bu Docker'ın en önemli özelliklerinden biridir. Bu özellik sayesinde yazılımınızı farklı servis sağlayıcıları üzerinde kolaylıkla gezindirebilir, çoğaltabilir veya paylaşabilirsiniz.
  • Docker, çok az kaynakla büyük işler yapabilmektedir. Bunun ana sebebi kullandığı konteyner teknolojisidir.
  • Uygulamalarınıza beklenmedik bir şekilde yüksek trafik geldiğinde saniyeler içerisinde 1000'lerce konteyner hazır hale gelerek yükünüzü omuzlar.
  • Docker, uygulamalarınızı standart bir zemine oturtarak her platformda aynı şekilde çalışmasını sağlar.

Kaynak 1

Kaynak 2