DOCKER⛴

Jiyan Aytek
Kodcular
Published in
5 min readFeb 16, 2018

▶️ Patlatıyorum “Docker“ isimli blog postumu..

Biraz da Docker Yolculuğu’na çıkalım

Kaynak dostu Docker!

Logosu çok tatlı değil mi?

Docker teknolojisi ile Mecidiyeköy’de bulunan KWORK’ün yaptığı etkinlikte Güray Yıldırım’ın sunumunda tanıştım.

Docker teknolojisini sizinle de tanıştırayım

Docker der ki:
“Build, Ship, and Run Any App, Anywhere”

Heey,Docker kullanıcısı! ✋

“Bir Docker uygulaması senin bilgisayarında calışıyorsa her yerde çalışır” der.

🌆 BUILD=Develop edin
💻🌐SHIP=Başka yere,başka bilgisayarlara kurun
RUN=Uygulamayı her yerde çalıştırın🏃‍♂️🏃‍♀️

DOCKER VE VIRTUALIZATION(SANALLAŞTIRMA) TEKNOLOJİLERİ

Sanallaştırma varken Docker teknolojisine ne gerek vardı diyenleri duyar gibiyim.Anlam karmaşasını önlemek için öncelikle bakalım neymiş bu sanallaştırma?

Sanallaştırma Teknolojisi

Sanallaştırma, gerçek bilgisayar gibi davranan sanal makineler yaratmanızı sağlayan bir teknolojidir.

Bunu bir yazılım katmanı sayesinde yapar. Bu yazılımın adı VMM veya diğer adıyla Hypervisor’dır.

Bilgisayarımızın CPU,RAM(Bellek),HARD DISK gibi donanımsal kaynakların mantıksal olarak ayrılması bir bilgisayarın içerisine birden fazla bilgisayar kurmamızı sağlamıştır.Örneğin 16 GB RAM’e sahip bir bilgisayar bir server üzerinde her biri 2 GB RAM kapasitesi kullanan 8 bilgisayar kurulabilir

Sanallaştırma, donanımsal kaynakları verimli kullanabilmek için Hypervisor teknolojisini kullanmaktadır

Kısaca bir bilgisayar üzerinde Hypervisor teknolojisini kullanarak birkaç bilgisayar kurulumu yapmamızı sağlayan toplam sunucu verimliliğini optimize etmeye virtualization(sanallaştırma) denir

SANALLAŞTIRMA ÖNCESİ VE SANALLAŞTIRMA SONRASI

SANALLAŞTIRMA YAZILIMLARI

🔸VMware

🔸Virtualbox

🔸Citrix XenServer

Sanallaştırma Çeşitleri

Sunucu Sanallaştırması, Uygulama Sanallaştırma, Sunum Sanallaştırması, Masaüstü Sanallaştırması ve Depolama Sanallaştırması 4 çeşit sanallaştırma çeşidi sıralayabiliriz.

Sanallaştırma Avantajları

  • Yeni sunucu almanıza gerek yoktur,sanal makine size yardımcı olur.Server ve fiziksel kaynaklarımız birbirinden bağımsız halde çalışır
  • Tüm işlerinizi tek bir makineden halledebilme olanağı sağlar.Yedeklenecek ve kurtarılacak verilerinizi de daha hızlı almanıza yarar
  • Daha az kaynak kullanımı için birebir tasarruf teknolojisidir

Sanallaştırma Dezavantajları

  • Sisteminizi ileriye dönük tasarlamanız gerekiyor
  • Temel kurulum ve network bilgilerine aşina olmanız gerekiyor

DOCKER⛴

Docker ile tanışmaya hazır mısınız?⛴️

Virtual Machine — Container

Docker, Go dili ile geliştirilmiş açık kaynak kodlu bir container teknolojisidir.

Docker ile Linux, Windows ve Mac OS X üzerinde containerlar koşuşturulan sistem yöneticileri ve yazılım geliştiriciler için geliştirilen açık kaynaklı bir sanallaştırma platformudur.

Docker uygulamanızın çalışması için gerekli olan her şeyi standart bir paket haline getirip sistemden bağımsız olarak çalıştırmamıza olanak sağlar

Docker Linux,Mac OS X ve Windows işletim sistemlerinde nasıl kullanılıyor peki?

Docker,Windows ve Mac OS X’te Docker CLI üzerinden iletişim kuruyoruz.Linux kernelinden destek alıp ortaya çıktığından hem Docker CLI hem de Docker Daemon parçaları üzerinden koşmaktadır

Docker işletim sistemini sanal bir makine olarak oluşturmak yerine bir işlemin kullanacağı kaynakları sanallaştırır ve aynı Kernel(çekirdek) ile konteyner oluşturmasına olanak vermektedir.

İşletim sistemlerinin yapılan işlemlerin kaynaklara ulaşması için aracı olduğunu da unutmayalım✔️

Docker ,container teknolojilerinin en çok bilineni ve popüler olanıdır.

Şimdi de Container ve Image kavramlarına göz atalım 👀

CONTAINER VE IMAGE KAVRAMLARI

📢 Dikkat dikkat Patron ÇILDIRDI!!

ArtIk sunucu üzerinde Hypervisor ile sanal makine oluşturup misafir işletim sistemi kurmaya son!

Ana makinenizde bulunan işletim sistemi üzerinde container teknolojisini kullanarak aynı çekirdeği kullanan uygulamalar çalıştırabilirsiniz

Tek bir işletim sistemini idare etmek bize yönetim kolaylığı sağlar

Dahası da var,bakalım neymiş??🤓

https://flipboard.com/topic/container

Container

Container, Docker Daemon tarafından Linux kerneli üzerine kurulu birbirinden izole olarak çalıştırılan process’lerin her birine verilen isimdir.

Taşıyıcılar aynı Linux çekirdeğini paylaşır

Sanallaştırma teknolojisinde disk alanını kullanırken Containerlar ortak sistem dosyalarını paylaştıklarından disk alanından tasarruf ederiz.

Sanal makineden çok daha küçük ve çok daha verimli bir teknoloji olduğuna ve güvenli bir şekilde işletim sisteminizi paylaşan açık kaynak kodlu teknoloji sayesinde uygulamamızı saniyeler içerisinde başlatma imkanı sağlıyor.

💡 Container, yeni bir teknoloji değil , 2000'li yılların başına dayanıyor sadece biz geç duyduk :)

AVANTAJLARI

▫️ İZOLASYON = Namespace teknolojisi ile her uygulama izole ve kontrol edilebilir hale getirilir.Böylece uygulamalar konteyner içerisinde izole çalışır

▫️ KAYNAK TASARRUFU = Cgroups teknolojisi ile kaynakların kullanım miktarları sınırlandırılır ve misafir işletim sistemi içermediğinden sanallaştırma teknolojisine göre daha hafiftir ve daha hızlıdır

▫️ GÜVENLİK = Her uygulamanın bağımsız çalışıyor olması saldırganın yapacağı attackta ortaya cıkacak güvenlik zafiyetleri izole alan içerisine hapsolacağından diğer servislere geçiş yapamaz ve güvenlik sağlanmış olur

DEZAVANTAJLARI

▪️ MİMARİ =Sunucular konteynerların aynı mimaride olmalarını istiyor.Hal böyle olunca 64 bit mimaride hazırlanmış bir konteyner, farklı bir platform üzerinde 32 bit olarak malesef çalışamıyor

▪️ YENİ TEKNOLOJİ =Konteyner teknolojisi günümüz IT profesyonellerinin coğu için halen yeni bir teknolojidir.

Image

Image, dosya sisteminin yapısı ve içerisindeki dosyaları belirleyen binary’ye verilen isimdir.

Dockerdaki imageler katmanlıdır.Bu sayede katmanlar birden fazla container tarafından paylaşılabilir.Bu da performansın artmasına ve kaynak tasarrufunu sağlar .

Docker engine üzerinde kurulu imagelere bakalım

docker images

“Docker image’i her yerde aynı şekilde calışır”

Docker Cloud , Docker uygulamalarımızı yönetebildiğimiz ve farklı bulut servislerine deploy edebildiğimiz bir bulut hizmetidir.

UBUNTU’YA DOCKER KURULUMU

Docker’in eski sürümü bilgisayarınızda yüklüyse varolan sürüm ilerde sorun çıkarabilir.Öncelikle varolan sürümleri kaldıralım

~$ sudo apt-get remove docker docker-engine docker.io

Ubuntu işletim sistemimizin versiyonunu görüp 16.04 LTS sürümü olduğunu dogrulayalım

~$ lsb_release -a

Gerekli olan paketleri yükleyelim

~$ sudo apt-get install apt-transport-https ca-certificates curl software-properties-common

Docker’ın official GPG Key’ini ekleyelim

~$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

Son 8 karaktere bakıp anahtarın oluşup oluşmadığını kontrol edelim.

~$ sudo apt-key fingerprint 0EBFCD88

ÇIKTI:

pub 4096R/0EBFCD88 2017–02–22
Key fingerprint = 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
uid Docker Release (CE deb) <docker@docker.com>
sub 4096R/F273FCD8 2017–02–22

Bu ekranı gördüyseniz doğru yoldasınız

Devam edelim..

Docker reposu ekliyoruz

~$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

Docker reposu eklendiğine göre güncelleyelim

~$ sudo apt-get update

Docker CE’nin en son sürümünü yüküyoruz

~$ sudo apt-get install docker-ce

Hello world image’ını docker kurulumunu doğrulamak için çalıştıralım

~$ sudo docker run hello-world

İyi iş çıkardın dostum,Docker kurulumu tamamlandı! 👏👏

KAYNAKLAR:

Sponsor Twitter Podcast Facebook Kodcular Slack Medium

--

--