Docker Nedir? Ne İşe Yarar?
Uygulama geliştirmek için açık kaynaklı bir proje olarak hazır hale getirilen docker nedir? Bu konuyu inceleyeceğiz. Docker, Linux, macOS ve Windows gibi işletim sistemlerinde konteyner oluşturma amacıyla kullanılır. Uygulama projelerinin düzenlemesini ve dağıtımını kolay bir hale getirir. Docker, yazılımcılar tarafından oldukça fazla tercih edilir.
Docker Nedir?
Bir uygulamada bulunan bütün kodları ve bağımlılıklarını küçük bir formatta paketleyen paketleme formatı Docker’dir. Docker uygulamanın değişik bilgi işlem formatlarında hızlı ve güvenli bir şekilde çalışmasını sağlar.
Docker Temel Bileşenleri Nelerdir?
Docker’in konteyner teknolojisi ile uygulama alanı bulunur. Docker’in nasıl kurulduğu hakkında bilgi almak isteyen yazılımcılar ve şirketler öncelikli olarak bu programın işleyiş yapısı hakkında bilgileri öğrenmelidir. Docker’in işleyiş sistemi incelendiği zaman bilinmesi gereken bazı kavramlar vardır.
O kavramlar ise şu şekildedir;
- Docker İmage: Uygulamanın çalışması için imagelerin konteyner ile paketlenmesi lazımdır. Docker İmage ile kendi görüntünüzü yapabilir ya da başkasının görüntüsünü kullanabilirsiniz.
- Dockerfile: Uygulamada İmage oluşturmak için gerekli olan config dosyasının ismi olarak tanımlanır. Konteyner yapılanmasında ağ bağlantı noktası, dil dosya konumu gibi çok sayıda image oluşturulurken ihtiyaç duyulan bütün talimatlar Dockerlife ile yapılır.
- Docker Hub: İmage oluşturulduktan sonra depolanma ve paylaşım için bu kullanılır.
- Docker Registry: İmagelerin Docker Hub üzerinde depolandığı konumu gösterir. Github’a benzer şekilde Docker Registry İmagelerin başkası tarafından kullanılmasını sağlar.
- Docker Daemon: Konteynerleri çalıştırıp dağıtılmasını sağlayan Docker Daemon imagelerin yönetimini yapar. Bilgisayarda çalışan işletim sisteminde aracı role sahip olan bu sistem bir nevi arka plan hizmetidir.
Görüldüğü üzere Docker temel bileşenleri bu şekildedir.
Yazılımcılar Neden Docker Kullanır?
Windows, macOS ve Linux gibi işletim sistemi kaynaklarını kullanmak için konteyner yapısı gerekir. Bilgisayar’ın işletim sisteminde bulunan RAM ve işlemci gibi kaynaklar aynı anda aynı sistemde kullanılması için sanallaştırma platformu kullanılır. Böyle olduğu zaman işletim sistemi kaynakları gereksiz yere kullanılmış olunur.
Konteyner yapılanmasında sanallaştırma platformlarının gereksiz ve yanlış bir şekilde kaynak kullanımını engeller. Konteyner teknolojisine sahip olan Docker, işletim sisteminde bulunan kaynakların dağıtımını yapar. Bu sayede uygulamalar sorunsuz bir şekilde çalışmaya başlar. Bu yüzden pek çok yazılımcı tarafından tercih edilir.
Docker’in Avantajları Nelerdir?
Docker programı uygulama geliştirmeyi daha kolay bir hale getirmek ve işletim sistemi kaynaklarını etkili bir şekilde kullanmak için kullanılır. Sanallaştırma platformlarının işletim sistemlerine zararını ortadan kaldırmak için çoğu yazılımcı tarafından kullanılır.
Docker’in sahip olduğu avantajlar şu şekildedir;
- Sanal makineleri yavaş işleyiş sisteminden korur. Kısa bir süre içinde başlatır.
- Sanal makinenin haricinde hız avantajına sahip olan Docker, kullanıcısına kısa bir süre içinde çok sayıda uygulama geliştirme fırsatı sunar.
- Farklı sunucularda çalışması gereken uygulamalarda Docker imagelerini indirip farklı environmet kurulumu yapmanıza gerek yoktur.
- Docker ile kurulan konteynerlerin yönetimini yapmak için çok sayıda araç vardır. Kubernetes teknolojisi sayesinde kaynakları otomatik olarak yönetebilirsiniz.
Görüldüğü üzere Docker’in bu ve bunun gibi çok sayıda avantajı vardır.
Docker İle Sanal Makine Arasında Ne Gibi Farklar Vardır?
Docker ile sanal makineyi birbirinden farklı kılan çok sayıda unsur vardır. Bu ikilinin birbirinden ayrı olan yönleri arasında işletim sistemleri vardır. Sanal makineler full işletim sistemime sahiptir.
Docker ise küçük boyutlara sahip işletim sistemine sahiptir. Docker kaynak tüketiminin en aza indirildiği izolasyon seviyesi sanal makineye göre daha düşüktür. Sanal makine dakikalar içinde çalışmaya başlar.
Docker saniyeler içinde çalışmaya başlar. Sanal makinenin herhangi bir versiyonu yoktur. Ancak Docker’in versiyonlarını yapmak mümkündür. Docker ve sanal makineyi birbirinden ayıran özellikler bu şekildedir.