Docker Nedir?

Bir yazılım konteynerleştirme platformu olan Docker, bir yazılımı çalıştırmanın yeni yolu olarak karşımıza çıkıyor. İş hayatınızı basitleştirirken hızlandırmanıza yardımcı oluyor. Her yerde uygulamalar oluşturulmasına, yönetilmesine ve güvenli hale getirilmesine olanak sağlıyor. Uygulamaların her yerde çalışabilmesi geliştiricilere gerekli bileşenleri sunuyor. Peki Docker nedir ve ne işe yarar? İşte cevabı.

Docker Nedir?

Yazılım geliştiriciler ve sistemciler için geliştirilmiş olan Docker, açık kaynaklı bir sanallaştırma platformu olup web sistemlerin kurulumunu, testini veya dağıtımını kolaylıkla gerçekleştirmenizi sağlayan bir bilgisayar programıdır. “Konteyner” (container) adlı yazılım paketlerini çalıştırmak için ve uygulamaların farklı ortamlarda çalıştırılması sürecinde kullanılır. Peki konteyner tam olarak nedir? Konteynerler, bir geliştiricinin bir uygulamayı kütüphaneler ya da diğer bağımlılıklar gibi ihtiyaç duyulan tüm parçalarla paketlenmesini sağlayan ve aynı zamanda tek bir paket olarak göndermesine olanak sağlayan Docker organizasyon birimleridir. Her bir konteyner bir süreç kullanır. Katman şeklinde Imagelerden oluşurlar. Yani Docker Image bir nevi önceden hazırlanmış paketler olup konteynerlara kurulacak olan uygulamaların veya OS’lerin dosyalarıdır. Konteyner oluşturmak için gerekli talimatları içeren bir şablon olarak da düşünebilirsiniz. İmajların tutulduğu ve dağıltıldığı yer ise Docker Registry oluyor. Docker Hub da oluşturulan imajların ortak kullanıma açıldığı depodur. Bu online serviste ünlü şirketlerin ya da insanların oluşturduğu hazır imajları bulabilirsiniz.

Docker Nasıl Çalışır?

Docker, Linux Containers (LXC) üzerine kurulu bir platform olduğu için aynı linux işletim sistemi birbirinden izole edilmiş ve bağımsız halde çalışabilen konteynerler oluşturur. Her bir konteyner process kullandığı için konteynerler kolaylıkla çoğaltılabilinir. Klasik sanal makinelerin aksine Hypervisor katmanına sahip değildir. Dolayısıyla Docker Engine üzerinden konak işletim sistemine erişir ve sistem araçlarını paylaşımlı olarak kullanır. Docker uygulaması Windows, Linux ve Mac üzerine kurulabilir.

Docker, client/servis mimarisini kullanır. Yani Docker işlemcisi, konteyner oluşturmak, çalıştırmak ya da durdurmak gibi işlevleri yerine getirmek için Docker Daemonlar ile konuşur. Docker Daemeon (Server) ise konterynerların izole çalışmasını sağlar. Docker client, Docker’ın kullanıcı ara yüzü olup Server tarafına gönderilecek komutları bulundurur.

Docker Engine

Docker Engine, geliştiricilerin ve işlemcilerin fikirlerini hızla ve güvenle gerçeğe dönüştürmesine yardımcı olur. Ayrıca birden çok işletim sistemiyle çalışır ve her türlü uygulamayı destekler. Docker Engine bilgileri Dockerfile ya da “docker-compose.yml” ‘den alır. Bu şekilde imajları oluşturarak çalıştırır.

Docker Compose

Bir Docker aracı olarak kompleks olan uygulamaların tanımlanmasını ve çalıştırılmasını sağlar. Uygulama hizmetlerin yapılandırılmasında ise tüm programlama dilleri tarafından kullanılabilen YAML dosyasını kullanabilirsiniz. Daha sonra birden fazla servisi tek bir yerden düzenleyebilir ve tek bir komutla çalıştırabilirsiniz.

Docker Machine

Docker Machine, bilgisayara Docker Engine’i yükleyebileceğiniz, birden fazla host oluşturmak ve yönetmek için kullanabileceğiniz bir araçtır. “Docker-machine” komutları sayesinde ana bilgisayarınızı yönetebilirsiniz.

Docker Swarm

Docker platformunda konteyner orkestrason aracı olan Swarm, veritabanı, web server, uygulama sunucuları ya da message queue gibi bileşenlerden oluşan uygulamaları yönetebilmenizi ve ölçeklendirebilmenizi sağlar. Kısacası Swarm, sunuculardan ya da konteynerlerden biri çöktüğü takdirde yerine hemen başkasının devralmasını sağlayarak yüksek kullanılabilirlik sağlar. Ayrıca yük dağılımını birden fazla sunucuya yapar ve uyum içerisinde dağıtır. 

Sunduğu Avantajlar Nelerdir?

Peki son zamanlarda yazılım geliştirme sektöründe adını Docker’in kullanım avantajları nelerdir?

  • Docker kullandığı konteyner teknolojisi sayesinde çok az kaynakla büyük işler yapabiliyor. Dolayısıyla konteynerler sayesinde çok fazla iş yükünü az donanıma sığdırabilir ve sistemlerin daha hızlı ölçeklendirilmesini sağlayabilirsiniz.
  • Kullanım kolaylığı sağlar. Uygulamalarınızı standart bir zemine oturtarak her platforma çalışmasını sağlayabilir. Üstelik uygulamalara yüksek trafik geldiğinde binlerce konteyner hazır hale gelir ve yükünüz hafifler.
  • Yazılımlarınızı farklı servisler üzerinden kolaylıkla çoğaltabilir ya da paylaşabilirsiniz.

Hypervisor kullanmaz ve tam işletim sistemi yerine küçültülmüş işletim sistemi imajı kullanır. Bu sayede saniyeler içerisinde kullanım için hazır hale gelebilir.

Bir yanıt yazın