• Anasayfa
  • Eğitimler
    • JavaScript Eğitimi
    • Angular 2 Eğitimi
    • React.js Eğitimi
    • Java 8 Eğitimi
    • Java EE 7 Eğitimi
    • Spring Framework Eğitimi
    • Git Eğitimi
  • Online Eğitimler
    • Online React.js Eğitimi
    • Online Angular 2 Eğitimi
    • Online Spring Boot Eğitimi
  • Referanslar
  • Hakkında
  • İletişim
KodEduKodEdu
  • Anasayfa
  • Eğitimler
    • JavaScript Eğitimi
    • Angular 2 Eğitimi
    • React.js Eğitimi
    • Java 8 Eğitimi
    • Java EE 7 Eğitimi
    • Spring Framework Eğitimi
    • Git Eğitimi
  • Online Eğitimler
    • Online React.js Eğitimi
    • Online Angular 2 Eğitimi
    • Online Spring Boot Eğitimi
  • Referanslar
  • Hakkında
  • İletişim

Docker Nedir ? Neden Kullanılır ?

  • Posted by Rahman Usta
  • Categories Cloud, Docker, Genel, Uncategorized
  • Date 25 Haziran 2015
VM vs Docker Container

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 vs Docker Container
Figure 1. Klasik VM vs Docker

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.

  • Share:
author avatar
Rahman Usta
Kodedu.com bünyesinde eğitim ve danışmanlık faaliyetleri sürdüren Rahman Usta, 2012 yılında yayına çıkan popülerJava Mimarisiyle Kurumsal Çözümler ve 2014 yılında yayınlanan Java 8 Ebook kitaplarının yazarıdır. Açık kaynak dünyasına katkı veren yazar, geliştirdiği AsciidocFX projesiyle Duke's Choice Award 2015 ödülünü kazanmıştır. Rahman ayrıca, Istanbul JUG'un ve Java standartlarını geliştiren JCP (Java Community Process)'in bir üyesidir. 2018 yılında Java Şampiyonu olarak seçilmiştir.

Previous post

Slayt hazırlarken nelere dikkat etmeliyiz?
25 Haziran 2015

Next post

AsciidocFX ile Reveal.js ve Deck.js Slaytları Hazırlamak (Video)
9 Temmuz 2015

You may also like

api-logo
Swagger Nedir? Neden kullanılır?
10 Ekim, 2018
spring-cli-logo
Spring CLI ile Spring Boot Projeleri Hazırlamak
21 Ağustos, 2017
eureka_architecture
Spring Cloud Netflix ve Eureka Service Discovery
3 Temmuz, 2017

    2 Comments

  1. eren
    2 Haziran 2018
    Cevapla

    Hocam devamını bekliyoruz

Leave A Reply Cevabı iptal et

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

E-posta listesine kayıt olun!






Gözde yazılar

Jax-RS 2 and LongPolling based Chat Application
25Haz2013
Java Collection API ve Big O Notasyonu
19Ağu2014
Java Mimarisiyle Kurumsal Çözümler : Kaynak Kodlar
09Kas2012
HTML 5 Server Sent Events on Glassfish 4
27Kas2013

Son Yazılar

  • Java’da Record’lar 27 Ocak 2020
  • Swagger Nedir? Neden kullanılır? 10 Ekim 2018
  • Spring CLI ile Spring Boot Projeleri Hazırlamak 21 Ağustos 2017
  • Spring Cloud Netflix ve Eureka Service Discovery 3 Temmuz 2017
  • Online React.js Eğitimi ardından (15-25 Mayıs 2017) 31 Mayıs 2017

Son Yorumlar

  • YAML Nedir? Neden YAML Kullanmalıyız? için shahriyar
  • Java Persistence API Nedir? (Giriş) için Utku
  • Java 8 – CompletableFuture ile Asenkron Programlama için Rahman Usta
  • Java 8 – CompletableFuture ile Asenkron Programlama için burak
  • Arm7 Nxp 2104 işlemci ile basit bir Uygulama için Mustafa Dinc

Get Java Software

Arşivler

Bizi takip edin

React.js Eğitimi Başlıyor
11-22 Eylül, 2017
Eğitmen
Rahman Usta
İletişim

merhaba@kodedu.com

  • Hakkında
  • Gizlilik Politikası
  • İletişim
  • Referanslar
Kodedu Bilişim Danışmanlık
Cemil Meriç mah. Çelebi sok.
No:16/3 Ümraniye/İSTANBUL
Tel: 0850 885 38 65
Alemdağ V.D.: 8960484815

KODEDU © Tüm hakları saklıdır.