Sales5 min read1006 words

Docker Nedir ? Docker Kavramları ve Anlamları Nelerdir ? Docker Ne İşe Yarar ?

Emir Eskici

PlusClouds Author

Cloud & SaaS

Docker Nedir ? Docker Kavramları ve Anlamları Nelerdir ? Docker Ne İşe Yarar ?

Docker Nedir ?

Öncelikle docker ne işe yarar ona bir bakalım;

Docker, diğer sanal makinelerden farklı olarak, sanal işletim sistemini sıfırdan oluşturmak yerine, Linux çekirdeğinin paylaşımı ile birbirinden bağımsız şekilde sistemin kullanılmasını sağlar. Docker kullanmadan bir sistemin oluşturulması ekstra çaba gerektiren yorucu bir süreci kapsamaktadır. Yürütülecek tüm işlemler Docker ile birkaç saniyede gerçekleştirilmektedir. Docker hızlı kurulumu için resmi web sitesini buradan ziyaret edebilirsiniz. Docker, yazılım ve sistem için geliştirilmiş olan, açık kaynak özellikli bir sanallaştırma altyapısıdır.

Docker’ın oluşturmuş olduğu platform ile Web sitelerinin kurulumları, testleri ve dağıtım işlemleri kolaylıkla gerçekleştirilmektedir. Docker’ın en önemli özelliği ise webmaster’ların da sıkça karşılaştığı “Mevcut bilgisayarda çalışıp, sunucuda çalışmama” sorunlarını tamamen ortadan kaldırılmasıdır. Docker sanallaştırma altyapısı, diğer sanal makinelerden (VirtualBox gibi) daha farklıdır ve içerisinde Hypervisor katmanını barındırmamaktadır. Bunların yerine, Docker Engine üzerinden işletim sistemine erişim sağlar ve sistem araçlarını paylaşımlı şekilde kullanır. Docker’ın en büyük avantajı ise çok daha az sistem kaynağı tüketimi sağlamasıdır.

Docker Kavramları Terminolojisi ve Anlamları Nelerdir?

Dockerfile

Mevcut lokaliniz üzerinde çalışan proje içerisinde, image üretmek amacıyla kullanılan “Config” dosyasına verilen isimdir.

Image

Çalıştırılması plânlanan uygulamaların paket haline getirilmiş şekli olmaktadır. Konteyner ise paket haline getirilen image’lerin çalıştırılacağı alanı ifade eder.

Docker Hub

Image’lerin paylaşımının yapıldığı ve saklandığı depo özelliğindedir. Docker Hub için, image deposu ifadesi kullanılmaktadır.

Docker Registry

Docker image’lerin saklanmış olduğu konumu temsil etmektedir. Docker varsayılan olarak Docker Hub üzerinde image’leri tarama yapacak biçimde yapılandırılmaktadır.

Docker Engine

Bir Linux çekirdeği üzerinde çalışmasını gerçekleştirmektedir.

Docker Daemon

Bir Linux çekirdeğinin içerisinde bulunan LXC yapısı mantığıyla çalışmaktadır. Docker Daemon’un amacı, konteynerların birbirinden izole olarak çalışmalarını yürütmelerine destek olmaktır.

Docker Machine

Birden çok host’ları oluşturma ve yönetme görevini gerçekleştirmektedir. Bir ya da daha fazla sistem içerisinde “Docker Engine” yükleme işlemlerinde kullanılmaktadır.

Docker Client ve Docker Server

Docker Client/Server yapısını oluşturarak kullanmaktadır. Client alanı mevcut hotsumuz ise Server alanı Docker’ın işlem yaptığı host olmaktadır. MacOS ve Windows işletim sistemlerinde Docker kendi Linux’unu oluşturarak, sanal bir Linux üzerinde çalışmasını gerçekleştirir. Özet olarak kendi serverını oluşturmuş olmaktadır.

Description

Docker Neden Kullanılır ?

Günümüz teknoloji dünyasında, kavramlar kullanıcılar tarafından akıl karışıklığına neden olmaktadır. Docker platformu söz konusu olduğunda ise “Docker nedir neden kullanılır”, “Docker nedir ne için kullanılır”, “Docker nedir nasıl çalışır” sorularına cevap vermek gerekir. Docker en basit ifadesiyle uygulamaların en hızlı şekilde bir araya getirilmesine, test edilmesine ve dağıtma işlemlerinin gerçekleştirilmesine imkan sunan yazılım platformudur.

Docker, yazılımlarını kitaplıklar, sistem araçları, çalışma zamanları gibi bir yazılımın çalışma sürecinde kullanılan her şeyi, konteyner adı verilen sanallaştırılmış olan birimler şeklinde paketleme işlemini gerçekleştirmektedir.

Docker kullanımı ile her veri ortamına hızlı bir şekilde uygulama dağıtarak, ölçeklendirme yapabilmekte, kodların doğru çalıştığından emin olabilmektedir. AWS (Amazon Web Services) dünyada kullanımı en yaygın olan, yüksek kapsamlı bir bulut platformudur.

AWS üzerinde Docker çalıştırıldığında, geliştirici ve yönetici birimlere her ölçekte dağıtımı yapılan uygulama oluşturma, uygulama gönderme ve uygulamaları çalıştırmanın üst seviyede güvenilir yolunu sağlamaktadır. Aynı zamanda düşük maliyetli bir çözüm sunmaktadır.

Docker Compose Nedir ? Ne İşe Yarar ?

Docker Compose, oldukça kompleks uygulamaların tanımlanmasında ve çalıştırılmasında kullanılan bir Docker aracı görevindedir. Docker Compose yardımıyla birden çok konteyner (Container) tanımlaması tek dosya içerisinde yapılabilmektedir.

Docker Compose tek komut ile uygulamanın ihtiyacı olan tüm gereksinimleri harekete geçirerek uygulamayı çalıştırmaktadır. Docker Compose aracılığıyla birden çok konteyner çalıştırılırken, mevcut konteynerlardan seçili olanların birbirlerine bağımlı kalması da sağlanmaktadır.

Örneğin; WordPress’i harekete geçirmek istediğinizde, bir MySQL ve WordPress image tanımlaması yapılabilmektedir.

Devam eden işlem adımlarında WordPress’in veri tabanını da (MySQL) bağlı (Depent) hale getirebilmektedir. Bu işlem sayesinde veri tabanı harekete geçerek, uygulamanızı (işlemi başlatılan WordPress’i) çalıştırmış olmaktadır. Docker Compose temel kullanım alanlarının dışında farklı amaçlarla da kullanılmaktadır;

  • Development Environments :
    Yazılım ve donanım süreçlerine yeni adapte olanlar için Compose yardımıyla daha kısa sürelerde geliştirme yapılabilecek bir ortam hazırlanabilmektedir.

  • Single Host Deployments :
    Mevcut olan tek host’un üzerinde tüm işlemlerin yapılabilmesi, her şeyin çalıştırılabilmesi sağlanmaktadır.

  • Automated Testing Environments :
    CI Pipeline için kullanılmaktadır. CI (Continuous Integration) sürekli entegrasyonu ifade etmektedir. süreç Pipeline (boru hattı) üzerinden yürütülmektedir. Test otomasyonlarında çalıştırılan uygulamalar ve Script’ler için uygun olmaktadır.

Description

Docker Images Nedir ?

Docker image, çalıştırılacak uygulama içerisinde ve alt yapısında çalışan, gerekli işletim sistemi araçlarının bulundurulduğu yapı olarak ifade edilmektedir. Docker image’ler, konteyner yaratırken kullanılan talimatların bulundurulduğu bir şablon özelliği taşımaktadır. “Docker image build” komutu ile birlikte Dockerfile dosyası üzerinden oluşturulan yapı olmaktadır. Docker image, Dockerfile ile ilgili tüm işlemler komutlar zinciri ile meydana getirilmektedir.

Komut aşamaları ise aşağıdaki şekilde ilerlemektedir ;

  • Env” komutu ile beraber, genel değişkenlerin atamaları yapılır.
  • From” komutu aracılığıyla, “Base image” dosyası referans olarak belirlenir.
  • Run” komutu ve konteyner ile beraber “Build” zamanında yapılması gerekli işlemler tanımlanır.
  • Expose” komutu ile sanallaştırılmış Docker Network içerisinde kullanılacak olan port’lar tanımlanıp, son olarak “Cmd” komutu ile konteyner çalıştırılır ve işleme alınacak tüm komutların tanımlaması yapılır.

Oluşturulmuş olan Dockerfile dosyası “Docker image build image_isim” komutu ile proje derlendiğinde (Build edildiğinde), tüm aşamaların gerçekleşmiş olduğu çıktılardan görüntülenebilmektedir. Tüm işlemlerin ardından yapılan kontrollerde, yeni adlandırılan image ler mevcut lokalde kullanıma hazır bulunmaktadır.

Docker Swarm Nedir ?

Docker Swarm, yönetici (Master) ve yönetilen (Worker) olarak ifade edilen makinelerin oluşturmuş olduğu ağa verilen isimdir. Docker Swarm, çoklu ana bilgisayar (Multiple Host) üzerinde birden çok örneği (Instance) harekete geçirerek, tek bir hata noktası (Single Point Of Failure) sorunlarını çözümlemek amacıyla Docker ile beraber sunulmuş olan servis özelliği taşımaktadır.

Docker Swarm kavramının detaylarını incelemeye başlamadan önce, konuyla ilgili en çok sorulan sorulardan biri olan “Docker id nedir?”e yanıt vermek yerinde olacaktır. Docker çalışma sisteminde bütün konteynerların bir ID’si bulunmaktadır. Docker ID tanımı, bunu ifade etmektedir. Docker Swarm çalışma prensibi içerisinde konteynerların tüm ID lerini istek gönderildiğinde listelenmektedir.

Docker Swarm problem çözme süreçlerinde farklı alanlarda da destek sunmaktadır ;

  • Entegre edilmiş Cluster Yönetimleri (Container Orchestration)
  • Ölçekleme problemleri (Scaling)
  • Periyodik olarak yapılan güncellemeler (Reduce Downtime Cost)
  • Sistem yük dağıtımları (Load Balancing)
  • Güvenlik işlemleri (TLS Connection)
  • Dahilide bulunan DNS sunucu konuları (Service Discovery)
  • Konteyner’lar arasındaki durum yönetimleri (Desired State Reconciliation)
  • Bileşenlerin gruplandırılması (Declarative Service Model) kavramlarına çözümler sunmaktadır.

Frequently Asked Questions

Docker nedir ve ne işe yarar?

Docker açık kaynaklı bir sanallaştırma altyapısıdır ve Linux çekirdeğinin paylaşımıyla birbirinden bağımsız olarak sistemlerin kullanılmasını sağlar. Hypervisor katmanı olmadan çok daha az kaynak tüketir ve kurulumlar birkaç saniyede gerçekleştirilebilir. Ayrıca mevcut bilgisayarda çalışıp sunucuda çalışmama sorununu ortadan kaldırır ve web sitesi kurulumlarını, testlerini ve dağıtımlarını kolaylaştırır.

Docker kavramları nelerdir ve her biri ne işe yarar?

Dockerfile, mevcut projede image üretmek amacıyla kullanılan yapılandırma dosyasına verilen isimdir. Image çalıştırılacak uygulamaların paket halinde bulunduğu yapıyı temsil eder ve konteyner bu image’leri çalıştırır. Docker Hub, imagelerin paylaşımı ve saklanması için kullanılan depodur; Docker Registry ise imagelerin saklandığı konumu ifade eder; Docker Engine Linux çekirdeği üzerinde çalışır.

Docker neden kullanılır?

Docker en basit ifadesiyle uygulamaların en hızlı şekilde bir araya getirilmesine, test edilmesine ve dağıtılmasına olanak sağlar. Yazılımları kitaplıklar, sistem araçları ve çalışma zamanları gibi gerekli her şeyi konteyner adı verilen sanallaştırılmış birimlerde paketler. AWS üzerinde Docker çalıştırıldığında dağıtım ve yönetim işlemlerini güvenilir, ölçeklenebilir ve maliyet açısından avantajlı bir şekilde sunar.

Docker Compose nedir ve ne işe yarar?

Docker Compose, çok kompleks uygulamaların tanımlanması ve çalıştırılmasında kullanılan bir Docker aracıdır. Bir dosyada birden çok konteyner tanımlanabilir ve tek komutla uygulamanın ihtiyacı olan tüm gereksinimler harekete geçirilir. WordPress örneğinde olduğu gibi MySQL ile birlikte çalıştırılarak bağımlılıkları yönetebilir.

Docker Images nedir ve ne amaçla kullanılır?

Docker image, çalıştırılacak uygulama ve altyapıda bulunan gerekli araçları içeren yapıdır ve konteynerlerin temelini oluşturur. Konteynerler bu image’leri çalıştırır ve image’ler, Dockerfile ile ilgili talimatların zinciriyle build edilir.

Docker image nasıl oluşturulur ve Dockerfile hangi aşamaları içerir?

Docker image, Dockerfile ile ilgili talimatlar zinciri kullanılarak build edilir. Aşamalar genelde Env ile değişkenlerin ataması, From ile Base image’nin belirlenmesi, Run ve Build ile işlemler, Expose ile portların ayarlanması ve Cmd ile konteynerin başlatılacak komutlarının tanımlanmasıdır.

Docker Swarm nedir ve ne gibi problemleri çözer?

Docker Swarm, yönetici (Master) ve yönetilen (Worker) olarak ifade edilen makinelerin oluşturmuş olduğu ağa verilen isimdir. Çoklu host üzerinde birden çok örneği çalıştırarak tek bir hata noktası sorununu çözmeyi amaçlar ve cluster yönetimi, ölçekleme, güncellemeler, yük dengeleme, TLS güvenliği, DNS servis keşfi ve durum yönetimi gibi konularda çözümler sunar.

Docker Nedir ? Docker Kavramları ve Anlam… | PlusClouds Blog