26 Mayıs 2025 Pazartesi

1- Docker

 Sanallaştırma

Var olan bir fiziksel sunucu içerisinde birden fazla sanal sunucu oluşturabiliriz. Örneğin windows bir sunucu içerisinde sanal linux oluşturabiliriz. 

Bizim fiziksel sunucumuzun kendisinin çalışabilmesi için bir operating sisteme ihtiyacımız var. Fiziksel sunucunun işletim sistemi sistem kaynağının belli bir kısmını kendisi tüketiyor. 

Sanal Sunucular fiziksel sunucu üzerindeki kaynakları nasıl kullanıyor ? 

Bir sanal makina oluşturduğumuzda bunun içerisine bir işletim sistemi kuruyoruz.


Yukarıdaki görsele baktığımız örneğin windows bir fiziksel sunucumuz olduğunu düşünelim.

Fiziksel sunucumuz içerisinde 10 gb windows için kullanılısın. 2 GB da sanal makinaları kurabilmek için sunucuya indirdiğimiz uygulama olsun. Daha bir fiziksel sunucuya hiç bir sanal makina kurmadığımz halde 12 gb bir alan kullanılamaz durumdadır. 

Daha sonra fiziksel sunucuya sanal sunucu kurmaya başladığımızda her bir sanal sunucuda kendi içinde işletim sistemi bulunduracaktır. Diyelimki her bir sanal sunucu için 8gb alan tahsis etmeye karar verdik. Bu sanal sunucuların zaten 4gb gibi kısmı sanal sunucuya ait işletim sistemi için kullanılacak. 1gb içindeki araçlar için kullanılsa geriye 3GB gibi alan kalıyor. Burada her bir sanal sunucu için ayıracağımız belleğin yarısından fazlası kullanılamayacak duruma geliyor. Ve bu her sanal sunucuda CPU'da tüketiyor.


ÇÖZÜM

Docker: Bir uygulamanın bağımlılıklarını ve kütüphanelerini bir container içerisinde paketleyerek güvenli bir şekilde izole halde çalışması için bir çözüm sağlar.


Örneğin üç farklı teknoloji ile yazılan, derlenen birer projemiz olduğunu varsayalım. Docker bu üç uygulamayı aynı sunucu üzerinde bir birlerinden izole edilmiş şekilde çalışabilmesini sağlayan teknolojidir.





Docker Daemon, docker'a ait bir API'dir ve Rest API ile haberleşir. Client tarafından girilen emir CLI üzerinden  Rest API şeklinde geliyor ve docker daemon bunları işliyor. 


Operating System (İşletim Sistemi), bir bilgisayarda donanım ile yazılım arasındaki etkileşimi yöneten temel yazılımdır. Kullanıcıların programları çalıştırabilmesini, dosyalarla işlem yapabilmesini, cihazların (fare, klavye, disk, ekran vb.) düzgün çalışmasını ve kaynakların (bellek, işlemci zamanı, disk alanı) verimli bir şekilde kullanılmasını sağlar.

Fiziksel sunucumuz içersinde hali hazırda Operating System(işletim sistemi) bulunmaktadır. Biz OS içerisine DOCKER kuruyoruz. Docker, bizim uygulamalarımızın çalışabilmesi için adı Container olan ortamlar sunuyor.Uygulamalarımızı bu container içerisine ekliyoruz ve başlatıyoruz. 

Container, Docker imageleri alıp kendi içerisinde çalıştırabiliyor.

Docker İmage, uygulamalarımızı ve uygulamaların ihtiyacı olan herşeyi içinde barındıran hazır paketlerdir. 

Docker build, Yeni bir docker image oluşturmak istediğimizde

Docker pull, herhangi bir repositoryden docker image'ı localimize indirilmesi

Docker run, Bir image'in container içerisinde çalıştırılması. Çalıştırmak istediğimiz image localimizde bulunmuyorsa ilk olarak bu image'i repositoryden localimize pull yapar.

Port Yönetimi


Docker Desktop içerisinde bulunan containerların dıış dünyaya yayın yapabilmesi için portlar üzerinde servis yapmaları gerekir. Yukarıdaki görsele bakarsak dış portlar her bir container için uniq olması gerekir fakat iç portlar aynı olabilir. IP Tables route ediyor. İç portlarda çakışma meydana gelmez.

Hiç yorum yok:

Yorum Gönder