Merhaba arkadaşlar, Bu yazımızda sizlere Dockerın ne işe yaradığını, avantajlarını, Image ve Container kavramlarını, Docker ile VM (virtual machine) arasındaki farklara değineceğiz.
Docker, open source bir ‘Container’ teknolojisidir. Aynı işletim sistemi üzerinde, yüzlerce birbirinden izole ve bağımsız Containerlar sayesinde sanallaştırma sağlayan bir teknolojidir. 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’ adı verilen standartlaştırılmış birimler halinde paketler.

Docker Ne İşe Yarar?
Bir uygulamanın geliştirilip müşteriye sunulması sürecinde belli süreçler ve ortamlar (environment) bulunmaktadır. Bu ortamlar birbirinden farklı platform, versiyon ve yapılara sahiptir. Bu altyapının oluşturulması için farklı yöntemler bulunmaktadır. Uzun yıllardır Sanallaştırma (Virtualization) teknolojisi sektörde aktifken artık Container (Conterization) teknolojisine geçilmiştir.
Avantajları Nedir?
- Web uygulamaların kolayca kurulumunu, testi, çalışmasını ve deployment’ını sağlar.
- Sunucu maliyetlerini önemli ölçüde azaltır.
- Hypervisor kullanmadığı için yüklü bir işletim sistemi barındırmaz, bu sayede saniyeler içinde çalışır ve kullanıma hazır hale gelir.
- Container teknolojisi sayesinde çok az kaynakla büyük işler yapabilir.
- Uygulamalarınıza yüksek trafik geldiğinde saniyeler içerisinde 1000’lerce container ile yükünüzü omuzlar.
- Docker temelli uygulamalar yerel bilgisayarlardan AWS’deki üretim dağıtımlarına sorunsuz bir şekilde taşınmasına olanak sağlar.
- Uygulamalarınızı standart bir zemine oturtarak farklı platformlarda aynı şekilde çalışmasını sağlar.

Container Nedir?
Container (Konteyner), herhangi bir işletim sisteminde üretilmiş bir applikasyonu bir başka işletim sisteminde (veya mevcut olduğu sistemde) herhangi bir Hypervisor yazılımına ihtiyaç duymadan çalıştırmaya yarayan bir teknolojidir.Docker konteyner oluşturmak için image (imaj)olarak adlandırılmış dosyalara ihtiyaç duyar. İmajları temelinde şablon olarak tanımlayabiliriz. Dockerfile dosyası ile konteyner başlatılırken (veya başlatıldıktan sonra) çalıştırılacak olan dosya ve ayarları içerir. Docker imaj içerisinde yer alan komutları kullanarak konteyner oluşturur ve çalıştırır.
Neden Docker Kullanmalıyız?
Docker’ı kullanmanız kaynak kullanımını geliştirerek daha hızlı kod göndermenize, uygulamanızın işlemlerini standardize etmenize, kodlarınızı sorunsuz bir şekilde taşımanıza imkan tanır. Docker sanal makinelerin (VM) aksine bir hypervisor katmanına ihtiyaç duymadığı için bu yönde bir lisans harcaması yapmanıza gerek yoktur. Docker ile her yerde güvenilir bir şekilde çalışabilen tek bir nesneniz olur. Docker’ın basit ve kolay anlaşılan söz dizimi, size uygulamanızda tam denetim sağlar.Virtual Machines VS Docker
VM-Sanallaştırma | Docker-Konteynırlaştırma |
Kaynak kullanımı çok fazladır. | Kaynak kullanımı çok düşüktür. |
Onlarca GB boyutundadır. | MB boyutundadır |
Ana bilgisayar donanımını bölerek sanallaştırır. | Ana bilgisayar donanımını paylaşır. |
Başlatılması uzun sürer. | Saniyeler içinde başlar. |
Donanım kaynakları düzeyinde sanallaştırma uygulanabilir. | Yüzlerce konteyner oluşturulabilir. |
Sanal bilgisayarlar birbirinden tamamen izole şekildedir. | Konteynerlar işletim sistemi seviyesinde izoledirler. |
Versiyonlama yoktur | Versiyonlama vardır. |
Tam işletim sisteminin kurulumunu gerektirir. | Küçültülmüş işletim sisemi imajı kullanır. |
İzolasyon yüksektir. | İzolasyonu VM kadar yüksek değildir. |