Docker Nedir? Nasıl Kullanılır?

Buse Yalçın
3 min readApr 22, 2021

--

Son yıllarda docker ismini çok sık duymaya başladık değil mi? Peki docker nedir? Son yıllarda nasıl bu kadar popüler oldu?

Öncelikle bir örnek ile başlayalım. Ben bir programcıyım ve yazdığım kodu test edilmesi üzere bir diğer arkadaşıma gönderiyorum. Fakat kodlar bende eksiksiz, hatasız çalışırken test edecek arkadaşımda çalışmıyor. Bunun nedeni benim bilgisayarımda ki bu programın çalışması için gereken alt yapı ve konfigürasyonların karşı tarafın bilgisayarında olmaması, uyuşmamasıdır. Örnek vermek gerekirse kullandığımız java, python gibi yazılım dillerinin versiyonlarından tutun gerekli kütüphanelerin versiyonlarına ve işleci farklılıklarına kadar bir çok şey bu duruma etki edebilir.

Başka bir örnek verecek olursak ; diyelim ki 3 farklı program yükleyeceğim ve birinin içindeki python sürümü 2.8, diğeri 3.0 sonuncusu da 3.1 olsun. Bilgisayarımız bu durumda bir zombi sistemine dönüştü diyebiliriz. İşte programların birbirlerinden izole şekilde çalışmasını kolaylaştırmak için bir çok gelişmeler yaşanmıştır. Bunlara en büyük çözümlerden birisi de Virtual Machine(Sanal Makine)

Virtual Machine(Sanal makine):

Sanal makine aslında bir bilgisayar sisteminin emülasyonudur. Basitçe söylemek gerekirse donanımda bir çok ayrı bilgisayar gibi görünen sistemlerin aslında bir bilgisayar üzerinde çalıştırılmasına olanak sağlar. Sanal makinenin işletim sistemi ana makinenin işletim sisteminden tamamen ayrıdır. Yani ana makinede Windows çalışırken sanal makinede Linux çalıştırmak mümkündür. Bir önceki örnekte dediğim gibi içinde farklı süründeki python bulunduran programları sanal makinemize yüklemeyi deneyelim. Burada ki fark bu programları sanal makineye dönüştürüp yüklemektir. Ve bu 3 farklı program birbirlerinden habersizlerdir diyebiliriz. peki bu sanal makineler nasıl oluyor da kendi başlarına çalışıyorlar? Bunların ana makine ile bir bağlantısı yok mu?Var ve bu bağlantının ismi Hypervisor’dır. Donanım ile sanal makine arasına oturur ve sunucuyu sanallaştırmak için gereklidir. Her ne kadar güncel sorunlara bir çözüm olsa da dezavantajları da vardır. Bazı özelliklerine değinecek olursak;

OS : Tam işletim sistemi

İzolasyon : Yüksek

Çalışır hale gelmesi : Dakikalar

Versiyonlama : Yok

Kolay paylaşılabilirlik : Düşük

Docker:

Docker diğer deyimi ile konteynırlaştırma.

2013 yılında sanal makinelere alternatif olarak birçok konuda avantajlar sağlayan açık kaynak kodlu docker çıkmıştır. Docker konteynır teknolojisi kullanarak uygulama oluşturmayı, dağıtmayı ve çalıştırmayı kolaylaştırmak için tasarlanmış bir araçtır. Peki bu konteynır nedir?

Konteynır, kodu ve tüm bağımlılıkları paketleyen bir yazılım birimidir. Böylece uygulama bir bilgisayar ortamından diğerine hızlı bir şekilde paylaşılır ve çalışır. Konteynırlar temeldeki bilgisayarı sanallaştırmak yerine yalnızca işletim sistemini sanallaştırır.

Konteynırlar fiziksel bir sunucunun ve ana işletim sisteminin üzerine oturur. Her konteynır ana bilgisayar işletim sistemi çekirdeğini bins/libs gibi parçacıklarını paylaşır. Burada bir sunucun tek bir işletim sistemi yüklemesi ile birden fazla iş yükünü çalıştırabileceği anlamına gelir. Doker sisteminin ana bilgisayarımız ile çalışmasına olanak sağlayan araç Container Engine’dir.

OS : Küçültülmüş işletim sistemi imajı

İzolasyon : Daha düşük

Çalışır hale gelmesi : Saniyeler

Versiyonlama : Yüksek

Kolay paylaşılabilirlik : Yüksek

Okuduğunuz için teşekkür ederim. Destek olursanız sevinirim :)

İyi okumalar, sağlıcakla ve bilgiyle kalın :)

Kaynaklar:https://www.argenova.com.tr/docker-nedir-ve-nasil-kullanilir

--

--

Buse Yalçın

Computer Engineer ⚪️ Backend Developer ⚪️ Research freak 💃🏼 GitHub: https://github.com/Buse5 Website: buse5.github.io