SlideShare a Scribd company logo
1 of 25
Download to read offline
İ İ İ İ
İ İ
DOCKER (Docker nedir ? )
Mustafa Akocak
Docker Nedir ?
SDÜ-CYBERLAB (Docker nedir?)
Klasik olarak bir tanımla başlamamız gerekirse Docker, dünyada en çok
kullanılan yazılım konteynerleştirme platformudur. Konteynerleştirme
konteyner içine koyma anlamına gelir.
Docker, diğer sanallaştırma çözümleri gibi tüm bir işletim sistemi ve
üzerindeki her şeyi hedef almak yerine sadece uygulamaları baş köşeye
oturtur ve onları tek başlarına çalışabilecekleri ve tamamen kendilerine ait
olan Konteyner'lerde çalıştırır.
Docker, Linux Kernel’e 2008 yılında eklenen Linux Containers (LXC)
üzerine kurulu bir teknolojidir
Docker nedir ?
SDÜ-CYBERLAB (Docker nedir))
Diğer sanallaştırma çözümleri asıl makinada bulunan "Host Operating
System" üzerinde çalışan "Guest" işletim sistemlerine ihtiyaç duyar.Bu
sanallaştırma araçlarında sistem şekildeki gibi çalışır.
Docker nedir ?
SDÜ-CYBERLAB (Docker nedir)
Docker ise aynı yalıtılmış ortamı direk olarak "Host" işletim sistemi
üzerinden sunar..Docker esas olarak linux kernelinde bulunan Linux
Container teknolojisine dayanır.Docker container teknolojisi şekilde ki gibi
çalışır.
Docker nedir ?
SDÜ-CYBERLAB (Docker nedir)
Docker ise aynı yalıtılmış ortamı direk olarak "Host" işletim sistemi
üzerinden sunar..Docker esas olarak linux kernelinde bulunan Linux
Container teknolojisine dayanır.Docker container teknolojisi şekilde ki gibi
çalışır.
Docker nedir ?
SDÜ-CYBERLAB (Docker nedir)
LXC nedir ?
lxc, açılımıyla linux containers, linux sistemlerde kullanabileceğiniz bir
başka virtualization uygulaması/method’udur.
En öne çıkan yanı tam sanallaştırma yerine, bir init process’inin etrafında
kurulu belirli process’lerin farklı bir kök dizini altında çalıştırılarak
sanallaştırmanın gerçekleştirilmesidir.
Bunun yanında lxc, kernel’in cgroups, namespace, bridging, virtual lan gibi
özelliklerden yararlandığı için chroot ile full-vm arasında bir noktada
denilebilir.
Full-vm’ler gibi resource management uygulanabilir, device’lar
paylaşılabilir. Full-vm’lere oranla kurmak, yönetmek, yürütmek oldukça
daha hızlı ve basittir.
Mimari
SDÜ-CYBERLAB (Docker nedir)
Docker temel iki parçadan oluşmaktadır
1- Linux Kernel’la direkt iletişim halinde olan Docker Daemon,
2- Docker Deamon ile iletişim kurmamıza olanak tanıyan Docker CLI
(Command-Line Interface)’dır.
Linux’ta hem Docker Daemon hem de Docker CLI doğal olarak direkt Linux
üzerinde koşmaktadır.
Windows ve Mac OS X’te ise Docker CLI Windows ve Mac OS X işletim
sistemleri üzerinde koşmakta, Docker Daemon ise bu işletim sistemlerinde
bir Hypervisor (duruma göre VMware, VirtualBox, Hyperkit, Hyper-V)
yardımıyla çalıştırılan Linux üzerinde koşmaktadır.
Mimari
SDÜ-CYBERLAB (Docker nedir)
Windows ve Mac OS X’teki mimari aşağıdaki şekilde resmedilmiştir.
Container
SDÜ-CYBERLAB (Docker nedir)
Docker Daemon tarafından Linux çekirdeği içerisinde birbirinden izole
olarak çalıştırılan process’lerin her birine verilen isimdir.
Virtual Machine (Sanal Makina) analojisinde Docker’ı Hypervisor’e
benzetirsek fiziksel sunucu üzerinde halihazırda koşturulmakta olan her bir
işletim sisteminin (sanal sunucunun) Docker’daki karşılığı Container’dır.
Container’lar milisaniyeler içerisinde başlatılabilir, istenen herhangi bir anda
duraklatılabilir (Pause), tamamen durdurulabilir (Stop) ve yeniden
başlatılabilirler.
Image ve Dockerfile
SDÜ-CYBERLAB (Docker nedir)
Image Docker Daemon ile çalıştırılacak Container’ların baz alacağı işletim
sistemi belirtir.
Dosya sisteminin yapısı ve içerisindeki dosyaları, koşturacağı programı
belirleyen ve içeriği metin bazlı bir Dockerfile ile belirlenen binary’ye
verilen isimdir.
Docker CLI
SDÜ-CYBERLAB (Docker nedir)
Kullanıcının Docker Daemon ile konuşabilmesi için gerekli komut setini
sağlar.
Registry’den yeni bir Image indirilmesi, Image’dan yeni bir Container ayağa
kaldırılması, çalışan Container’ın durdurulması, yeniden başlatılması,
Container’lara işlemci ve RAM sınırlarının atanması vb komutların
kullanıcıdan alınarak Docker Daemon’e teslim edilmesinden sorumludur.
Docker Registry
SDÜ-CYBERLAB (Docker nedir)
DockerHub‘da topluluğun ürettiği Image’lar ücretsiz ve sınırsız indirilebilir,
oluşturulan yeni Image’lar gerek topluluk ile gerekse kişisel veya şirket
referansı için açık kaynaklı (ücretsiz) veya kapalı kaynaklı (ücretli)
yüklenebilir ve sonradan indirilebilir
Cloud’da hizmet veren DockerHub’ın yanında Image’larını kendi Private
Cloud’unda tutmak isteyenler için Docker’ın sunduğu Private Registery
hizmeti de vardır.
Docker Install
SDÜ-CYBERLAB (Docker nedir)
Docker linux komut satırında kurulum için sırası ile aşağıdaki komutları
uygulamak yeterli olur.
1. sudo apt-get update -y
2. sudo apt-get install apt-transport-https ca-certificates curl
software-properties-common
3. curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key
add -
4. sudo add-apt-repository "deb [arch=amd64]
https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
Docker Install
SDÜ-CYBERLAB (Docker nedir)
Kurulum aşaaması tamamlandıktan sonra “docker version” komutu
kullarak sisteme kurmak istediğimiz uygulamanın kurulup kurulmadığını
anlamamıza yardımcı olur.Komutun çıktısı şu şekilde olmalıdır.
Docker Clı
SDÜ-CYBERLAB (Docker nedir)
Docker’ı sistemimize kurduğumuza göre ilk olarak DockerHub’dan bir
kopyasını indirmek için docker pull hello-world komutunu verin.
Şöyle bir çıktı almamız gerekir.
Docker CLI
SDÜ-CYBERLAB (Docker nedir)
İlk docker imagemızı lokalimiz indirdikten sonra localimiz de indirilen bu
image görüntülemek için “docker images” komutunu çalıştımamız yeterli
olacaktır.
Docker CLI
SDÜ-CYBERLAB (Docker nedir)
Görüntülemiş olduğumuz hello-world imagemızı çalıştırmak için ise
“Docker run hello-world” komutunu çalıştırmak yeterlidir.
Bu komut image eğer daha önceden Pull edilmediyse öncelikle Image’ı Pull
etmekte ve sonra çalıştırmaktadır.
Docker CLI
SDÜ-CYBERLAB (Docker nedir)
Çalıştırılan docker run hello-world komutunu verdiğimizde Daemon
ilgili Image’dan yeni bir Container oluşturdu ve Container’ı çalıştırmaya
başladı. Container da yukarıda okuduğumuz çıktıyı oluşturdu ve bu çıktı
Daemon’dan Client’a gönderildi ve ekrana basıldı.
Docker CLI
SDÜ-CYBERLAB (Docker nedir)
Bu adımdan sonra çalıştırmış olduğumuz container’ler hakkında bilgi
edinmek istersek ilk olarak “docker ps “ komutunu ile karşılaşırız.
Bu komut docker clı da çalıştırmış odluğumuz ve halihazırda devam eden
containerlerin bilgilerini çıktı olarak verir.Burada gözükmemesinin sebebi
ise hello-world imagemızın sadece anlık olarak çalışıp kapanmasından
dolayı kaynaklanır.
Docker CLI
SDÜ-CYBERLAB (Docker nedir)
Peki docker deamonda önceden çalıştırmış olduğumuz bir image’ları nasıl
görüntüleyebiliriz.Burada “-a” parametresi yardımıza koşar eğer önceden
docker deamon da çalışmış olan image’ları listelemek isteresek
“Docker ps -a” komutunu çalıştırmak yeterli olacaktır.
Docker CLI
SDÜ-CYBERLAB (Docker nedir)
Bir önceki adımda çıkış yapan Container’ı tekrar başlatabiliriz. Bu işlemi
docker start komutu ile yapabiliriz.
-a parametresi kullanmazsak çalıştırılan container ile ilgili sadece id
bilgisini ekrana basar.Eğer kullanırsak çalışan container’ı terminale attach
ederek gerçekleşen outputları ekrana basar.
Docker CLI
SDÜ-CYBERLAB (Docker nedir)
Peki biz container’ı -a parametresi ile çalıştırdığımız zaman çalışmıyor mu
?
Tabiki de çalışıyor.Peki çalışan bu container ile ilgili oluşan hareketleri
nasıl görüntüleyebilriz.Burada ise “docker log <container_id> komutu ile
bu işlem sağlanır.
Docker CLI
SDÜ-CYBERLAB (Docker nedir)
Oluşturulan docker image’larımızı çok fazla oldu diyelim bu image’lar
arasında gereksiz olanlar olduğunu düşünelim bu image’ları localimizden
kaldırmak için “docker rmi <id>” komutu ile image’ı silebiliriz.Burada “-f”
parametresi kullanırsak container çalışır durumda bile olsa container’ı
kaldırır.
Docker CLI
SDÜ-CYBERLAB (Docker nedir)
Indirmiş olduğumuz bu docker image’ı çalışmaya başladı. Peki çalışan bu
nginx web serverı localimized görüntülemek için tarayıcımızda
“localhost:8080” adresini girmemiz yeterli olacaktır.
Burada “8080” yazmamızın sebebi -p paremetresinden dolayıdır.
“-p” parametresi container’ın internal 80 portunu external 8080 portuna
yönlendir anlamına gelir.
Bu demek oluyor ki externaldan 8080 portundan gelen istekleri container’
ın 80 portuna yönlendir anlamına gelir.
Docker CLI
SDÜ-CYBERLAB (Docker nedir)
Docker ps komutunu çalıştırdığımız zaman ise nginx web server’ın hale
çalıştığını görüntülüyoruz.
Bu çalışan image’ın terminal ekranına girmek için ise “docker exec -it <id>
/bin/bash” komutnu çalıştırmak yeterli olacaktır.Bu komut içerisin “-i”
parametresi interaktif terminali “-t” parametresi ise bu terminalin ekran
attach olmasını sağlar.

More Related Content

What's hot

SIZMA TESTLERİNDE BİLGİ TOPLAMA
SIZMA TESTLERİNDE BİLGİ TOPLAMASIZMA TESTLERİNDE BİLGİ TOPLAMA
SIZMA TESTLERİNDE BİLGİ TOPLAMABGA Cyber Security
 
LINUX, WINDOWS VE AĞ SİSTEMLERİ SIZMA TESTLERİ
LINUX, WINDOWS VE AĞ SİSTEMLERİ SIZMA TESTLERİ LINUX, WINDOWS VE AĞ SİSTEMLERİ SIZMA TESTLERİ
LINUX, WINDOWS VE AĞ SİSTEMLERİ SIZMA TESTLERİ BGA Cyber Security
 
Beyaz Şapkalı Hacker (CEH) Lab Kitabı
Beyaz Şapkalı Hacker (CEH) Lab KitabıBeyaz Şapkalı Hacker (CEH) Lab Kitabı
Beyaz Şapkalı Hacker (CEH) Lab KitabıBGA Cyber Security
 
Windows İşletim Sistemi Yetki Yükseltme Çalışmaları
Windows İşletim Sistemi Yetki Yükseltme ÇalışmalarıWindows İşletim Sistemi Yetki Yükseltme Çalışmaları
Windows İşletim Sistemi Yetki Yükseltme ÇalışmalarıBGA Cyber Security
 
Metasploit Framework - Giris Seviyesi Guvenlik Denetim Rehberi
Metasploit Framework - Giris Seviyesi Guvenlik Denetim RehberiMetasploit Framework - Giris Seviyesi Guvenlik Denetim Rehberi
Metasploit Framework - Giris Seviyesi Guvenlik Denetim RehberiFatih Ozavci
 
Siber Guvenlik ve Etik Hhacking -2-
Siber Guvenlik ve Etik Hhacking -2-Siber Guvenlik ve Etik Hhacking -2-
Siber Guvenlik ve Etik Hhacking -2-Murat KARA
 
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 7, 8, 9
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 7, 8, 9Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 7, 8, 9
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 7, 8, 9BGA Cyber Security
 
Dockers and kubernetes
Dockers and kubernetesDockers and kubernetes
Dockers and kubernetesDr Ganesh Iyer
 
I'm in your cloud... reading everyone's email. Hacking Azure AD via Active Di...
I'm in your cloud... reading everyone's email. Hacking Azure AD via Active Di...I'm in your cloud... reading everyone's email. Hacking Azure AD via Active Di...
I'm in your cloud... reading everyone's email. Hacking Azure AD via Active Di...DirkjanMollema
 
Windows Ağlarda Saldırı Tespiti
Windows Ağlarda Saldırı TespitiWindows Ağlarda Saldırı Tespiti
Windows Ağlarda Saldırı TespitiSparta Bilişim
 
Docker 101 - Nov 2016
Docker 101 - Nov 2016Docker 101 - Nov 2016
Docker 101 - Nov 2016Docker, Inc.
 
Docker Networking Overview
Docker Networking OverviewDocker Networking Overview
Docker Networking OverviewSreenivas Makam
 
Pwning mobile apps without root or jailbreak
Pwning mobile apps without root or jailbreakPwning mobile apps without root or jailbreak
Pwning mobile apps without root or jailbreakAbraham Aranguren
 
Kali ile Linux'e Giriş | IntelRAD
Kali ile Linux'e Giriş | IntelRADKali ile Linux'e Giriş | IntelRAD
Kali ile Linux'e Giriş | IntelRADMehmet Ince
 

What's hot (20)

SIZMA TESTLERİNDE BİLGİ TOPLAMA
SIZMA TESTLERİNDE BİLGİ TOPLAMASIZMA TESTLERİNDE BİLGİ TOPLAMA
SIZMA TESTLERİNDE BİLGİ TOPLAMA
 
Web uygulama açıklıklarından faydalanarak sistem ele geçirme
Web uygulama açıklıklarından faydalanarak sistem ele geçirmeWeb uygulama açıklıklarından faydalanarak sistem ele geçirme
Web uygulama açıklıklarından faydalanarak sistem ele geçirme
 
Web Uygulama Güven(siz)liği
Web Uygulama Güven(siz)liğiWeb Uygulama Güven(siz)liği
Web Uygulama Güven(siz)liği
 
LINUX, WINDOWS VE AĞ SİSTEMLERİ SIZMA TESTLERİ
LINUX, WINDOWS VE AĞ SİSTEMLERİ SIZMA TESTLERİ LINUX, WINDOWS VE AĞ SİSTEMLERİ SIZMA TESTLERİ
LINUX, WINDOWS VE AĞ SİSTEMLERİ SIZMA TESTLERİ
 
DDoS Engelleme Ürünleri
DDoS Engelleme ÜrünleriDDoS Engelleme Ürünleri
DDoS Engelleme Ürünleri
 
I hunt sys admins 2.0
I hunt sys admins 2.0I hunt sys admins 2.0
I hunt sys admins 2.0
 
Beyaz Şapkalı Hacker (CEH) Lab Kitabı
Beyaz Şapkalı Hacker (CEH) Lab KitabıBeyaz Şapkalı Hacker (CEH) Lab Kitabı
Beyaz Şapkalı Hacker (CEH) Lab Kitabı
 
Windows İşletim Sistemi Yetki Yükseltme Çalışmaları
Windows İşletim Sistemi Yetki Yükseltme ÇalışmalarıWindows İşletim Sistemi Yetki Yükseltme Çalışmaları
Windows İşletim Sistemi Yetki Yükseltme Çalışmaları
 
Metasploit Framework - Giris Seviyesi Guvenlik Denetim Rehberi
Metasploit Framework - Giris Seviyesi Guvenlik Denetim RehberiMetasploit Framework - Giris Seviyesi Guvenlik Denetim Rehberi
Metasploit Framework - Giris Seviyesi Guvenlik Denetim Rehberi
 
Siber Guvenlik ve Etik Hhacking -2-
Siber Guvenlik ve Etik Hhacking -2-Siber Guvenlik ve Etik Hhacking -2-
Siber Guvenlik ve Etik Hhacking -2-
 
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 7, 8, 9
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 7, 8, 9Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 7, 8, 9
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 7, 8, 9
 
Dockers and kubernetes
Dockers and kubernetesDockers and kubernetes
Dockers and kubernetes
 
BTRisk Adli Bilişim Eğitimi Sunumu
BTRisk Adli Bilişim Eğitimi SunumuBTRisk Adli Bilişim Eğitimi Sunumu
BTRisk Adli Bilişim Eğitimi Sunumu
 
I'm in your cloud... reading everyone's email. Hacking Azure AD via Active Di...
I'm in your cloud... reading everyone's email. Hacking Azure AD via Active Di...I'm in your cloud... reading everyone's email. Hacking Azure AD via Active Di...
I'm in your cloud... reading everyone's email. Hacking Azure AD via Active Di...
 
Windows Ağlarda Saldırı Tespiti
Windows Ağlarda Saldırı TespitiWindows Ağlarda Saldırı Tespiti
Windows Ağlarda Saldırı Tespiti
 
Docker 101 - Nov 2016
Docker 101 - Nov 2016Docker 101 - Nov 2016
Docker 101 - Nov 2016
 
Docker Networking Overview
Docker Networking OverviewDocker Networking Overview
Docker Networking Overview
 
Pwning mobile apps without root or jailbreak
Pwning mobile apps without root or jailbreakPwning mobile apps without root or jailbreak
Pwning mobile apps without root or jailbreak
 
Hacking'in Mavi Tarafı -1
Hacking'in Mavi Tarafı  -1Hacking'in Mavi Tarafı  -1
Hacking'in Mavi Tarafı -1
 
Kali ile Linux'e Giriş | IntelRAD
Kali ile Linux'e Giriş | IntelRADKali ile Linux'e Giriş | IntelRAD
Kali ile Linux'e Giriş | IntelRAD
 

Similar to Docker 101

Sanallaştırmada Yeni Akım - Docker
Sanallaştırmada Yeni Akım - DockerSanallaştırmada Yeni Akım - Docker
Sanallaştırmada Yeni Akım - DockerOguz Yarimtepe
 
Docker node-nginx-redis ipnordic demo
Docker node-nginx-redis ipnordic demoDocker node-nginx-redis ipnordic demo
Docker node-nginx-redis ipnordic demoCemal Erdemir
 
Docker Nedir, Ne İşe Yarar, Nasıl Kullanılmalıdır?
Docker Nedir, Ne İşe Yarar, Nasıl Kullanılmalıdır? Docker Nedir, Ne İşe Yarar, Nasıl Kullanılmalıdır?
Docker Nedir, Ne İşe Yarar, Nasıl Kullanılmalıdır? Mustafa AKIN
 
PHPKonf'15 PHP Uygulamalarını Docker ile Çalıştırmak
PHPKonf'15 PHP Uygulamalarını Docker ile ÇalıştırmakPHPKonf'15 PHP Uygulamalarını Docker ile Çalıştırmak
PHPKonf'15 PHP Uygulamalarını Docker ile ÇalıştırmakBerat Doğan
 
Sanallastirmada yeni akim: Docker
Sanallastirmada yeni akim: DockerSanallastirmada yeni akim: Docker
Sanallastirmada yeni akim: DockerOguz Yarimtepe
 
Abis Teknoloji şirket içi Docker sunumu
Abis Teknoloji şirket içi Docker sunumuAbis Teknoloji şirket içi Docker sunumu
Abis Teknoloji şirket içi Docker sunumuMahmut Gündoğdu
 
Docker - Ankara Cloud Meetup
Docker - Ankara Cloud Meetup Docker - Ankara Cloud Meetup
Docker - Ankara Cloud Meetup Mustafa AKIN
 
vSphere Integrated Containers
vSphere Integrated ContainersvSphere Integrated Containers
vSphere Integrated ContainersVahric Muhtaryan
 
Docker ve kubernetes ile ilgili kısa bilgilendirmeler
Docker ve kubernetes ile ilgili kısa bilgilendirmeler Docker ve kubernetes ile ilgili kısa bilgilendirmeler
Docker ve kubernetes ile ilgili kısa bilgilendirmeler Oğuzhan İğrek
 
Teknolojide Atılım - Docker İle Konforlu Geliştirme Ortamı
Teknolojide Atılım - Docker İle Konforlu Geliştirme OrtamıTeknolojide Atılım - Docker İle Konforlu Geliştirme Ortamı
Teknolojide Atılım - Docker İle Konforlu Geliştirme OrtamıSelçuk Usta
 
Linux Komut Satırı
Linux Komut Satırı Linux Komut Satırı
Linux Komut Satırı Kemal Demirez
 
Android mimari-cekirdek-binding-scheduler
Android mimari-cekirdek-binding-schedulerAndroid mimari-cekirdek-binding-scheduler
Android mimari-cekirdek-binding-schedulerErcan Pinar
 

Similar to Docker 101 (20)

Bmup_v1
Bmup_v1Bmup_v1
Bmup_v1
 
Sanallaştırmada Yeni Akım - Docker
Sanallaştırmada Yeni Akım - DockerSanallaştırmada Yeni Akım - Docker
Sanallaştırmada Yeni Akım - Docker
 
Docker Egitimi
Docker EgitimiDocker Egitimi
Docker Egitimi
 
Docker node-nginx-redis ipnordic demo
Docker node-nginx-redis ipnordic demoDocker node-nginx-redis ipnordic demo
Docker node-nginx-redis ipnordic demo
 
Docker Nedir, Ne İşe Yarar, Nasıl Kullanılmalıdır?
Docker Nedir, Ne İşe Yarar, Nasıl Kullanılmalıdır? Docker Nedir, Ne İşe Yarar, Nasıl Kullanılmalıdır?
Docker Nedir, Ne İşe Yarar, Nasıl Kullanılmalıdır?
 
PHPKonf'15 PHP Uygulamalarını Docker ile Çalıştırmak
PHPKonf'15 PHP Uygulamalarını Docker ile ÇalıştırmakPHPKonf'15 PHP Uygulamalarını Docker ile Çalıştırmak
PHPKonf'15 PHP Uygulamalarını Docker ile Çalıştırmak
 
Sanallastirmada yeni akim: Docker
Sanallastirmada yeni akim: DockerSanallastirmada yeni akim: Docker
Sanallastirmada yeni akim: Docker
 
Abis Teknoloji şirket içi Docker sunumu
Abis Teknoloji şirket içi Docker sunumuAbis Teknoloji şirket içi Docker sunumu
Abis Teknoloji şirket içi Docker sunumu
 
Docker - Ankara Cloud Meetup
Docker - Ankara Cloud Meetup Docker - Ankara Cloud Meetup
Docker - Ankara Cloud Meetup
 
Docker İle Web Hosting
Docker İle Web HostingDocker İle Web Hosting
Docker İle Web Hosting
 
vSphere Integrated Containers
vSphere Integrated ContainersvSphere Integrated Containers
vSphere Integrated Containers
 
Docker ve kubernetes ile ilgili kısa bilgilendirmeler
Docker ve kubernetes ile ilgili kısa bilgilendirmeler Docker ve kubernetes ile ilgili kısa bilgilendirmeler
Docker ve kubernetes ile ilgili kısa bilgilendirmeler
 
Teknolojide Atılım - Docker İle Konforlu Geliştirme Ortamı
Teknolojide Atılım - Docker İle Konforlu Geliştirme OrtamıTeknolojide Atılım - Docker İle Konforlu Geliştirme Ortamı
Teknolojide Atılım - Docker İle Konforlu Geliştirme Ortamı
 
Openstack Magnum CaaS
Openstack Magnum CaaSOpenstack Magnum CaaS
Openstack Magnum CaaS
 
Linux Komut Satırı
Linux Komut Satırı Linux Komut Satırı
Linux Komut Satırı
 
Android mimari-cekirdek-binding-scheduler
Android mimari-cekirdek-binding-schedulerAndroid mimari-cekirdek-binding-scheduler
Android mimari-cekirdek-binding-scheduler
 
delphi
delphidelphi
delphi
 
14
1414
14
 
delphi xe5
delphi xe5 delphi xe5
delphi xe5
 
Temel linux
Temel linuxTemel linux
Temel linux
 

More from SDU CYBERLAB

SDU Siber Güvenlik Zirvesi - Anıl Baran Yelken - Python ile Sızma Testi Araç...
SDU Siber Güvenlik Zirvesi - Anıl Baran Yelken - Python ile Sızma Testi Araç...SDU Siber Güvenlik Zirvesi - Anıl Baran Yelken - Python ile Sızma Testi Araç...
SDU Siber Güvenlik Zirvesi - Anıl Baran Yelken - Python ile Sızma Testi Araç...SDU CYBERLAB
 
SDU Siber Güvenlik Zirvesi - Barkın Kılıç - IoT Sistemler ve Güvenlik Sunumu
SDU Siber Güvenlik Zirvesi - Barkın Kılıç - IoT Sistemler ve Güvenlik SunumuSDU Siber Güvenlik Zirvesi - Barkın Kılıç - IoT Sistemler ve Güvenlik Sunumu
SDU Siber Güvenlik Zirvesi - Barkın Kılıç - IoT Sistemler ve Güvenlik SunumuSDU CYBERLAB
 
Linux101 Temel Komutlar-Dizin Yapısı
Linux101 Temel Komutlar-Dizin YapısıLinux101 Temel Komutlar-Dizin Yapısı
Linux101 Temel Komutlar-Dizin YapısıSDU CYBERLAB
 
Linux101 - Standart Gi̇rdi-Çıktı
Linux101 - Standart Gi̇rdi-ÇıktıLinux101 - Standart Gi̇rdi-Çıktı
Linux101 - Standart Gi̇rdi-ÇıktıSDU CYBERLAB
 
Footprinting - Shodan
Footprinting - ShodanFootprinting - Shodan
Footprinting - ShodanSDU CYBERLAB
 
Linux 101 - Ağ Temelleri
Linux 101 - Ağ TemelleriLinux 101 - Ağ Temelleri
Linux 101 - Ağ TemelleriSDU CYBERLAB
 
Linux 101 - GNU/Linux Nedir ? Nasıl Kurulur?
Linux 101 - GNU/Linux Nedir ? Nasıl Kurulur?Linux 101 - GNU/Linux Nedir ? Nasıl Kurulur?
Linux 101 - GNU/Linux Nedir ? Nasıl Kurulur?SDU CYBERLAB
 
Linux 101 - Kullanıcı Yönetimi
Linux 101 - Kullanıcı YönetimiLinux 101 - Kullanıcı Yönetimi
Linux 101 - Kullanıcı YönetimiSDU CYBERLAB
 
Python Metaprogramming
Python MetaprogrammingPython Metaprogramming
Python MetaprogrammingSDU CYBERLAB
 
Man in the Middle Atack
Man in the Middle AtackMan in the Middle Atack
Man in the Middle AtackSDU CYBERLAB
 

More from SDU CYBERLAB (11)

SDU Siber Güvenlik Zirvesi - Anıl Baran Yelken - Python ile Sızma Testi Araç...
SDU Siber Güvenlik Zirvesi - Anıl Baran Yelken - Python ile Sızma Testi Araç...SDU Siber Güvenlik Zirvesi - Anıl Baran Yelken - Python ile Sızma Testi Araç...
SDU Siber Güvenlik Zirvesi - Anıl Baran Yelken - Python ile Sızma Testi Araç...
 
SDU Siber Güvenlik Zirvesi - Barkın Kılıç - IoT Sistemler ve Güvenlik Sunumu
SDU Siber Güvenlik Zirvesi - Barkın Kılıç - IoT Sistemler ve Güvenlik SunumuSDU Siber Güvenlik Zirvesi - Barkın Kılıç - IoT Sistemler ve Güvenlik Sunumu
SDU Siber Güvenlik Zirvesi - Barkın Kılıç - IoT Sistemler ve Güvenlik Sunumu
 
Linux101 Temel Komutlar-Dizin Yapısı
Linux101 Temel Komutlar-Dizin YapısıLinux101 Temel Komutlar-Dizin Yapısı
Linux101 Temel Komutlar-Dizin Yapısı
 
Linux101 - Standart Gi̇rdi-Çıktı
Linux101 - Standart Gi̇rdi-ÇıktıLinux101 - Standart Gi̇rdi-Çıktı
Linux101 - Standart Gi̇rdi-Çıktı
 
Footprinting - Shodan
Footprinting - ShodanFootprinting - Shodan
Footprinting - Shodan
 
Linux 101 - Ağ Temelleri
Linux 101 - Ağ TemelleriLinux 101 - Ağ Temelleri
Linux 101 - Ağ Temelleri
 
Linux 101 - GNU/Linux Nedir ? Nasıl Kurulur?
Linux 101 - GNU/Linux Nedir ? Nasıl Kurulur?Linux 101 - GNU/Linux Nedir ? Nasıl Kurulur?
Linux 101 - GNU/Linux Nedir ? Nasıl Kurulur?
 
Linux 101 - Kullanıcı Yönetimi
Linux 101 - Kullanıcı YönetimiLinux 101 - Kullanıcı Yönetimi
Linux 101 - Kullanıcı Yönetimi
 
Web Socket
Web SocketWeb Socket
Web Socket
 
Python Metaprogramming
Python MetaprogrammingPython Metaprogramming
Python Metaprogramming
 
Man in the Middle Atack
Man in the Middle AtackMan in the Middle Atack
Man in the Middle Atack
 

Docker 101

  • 1. İ İ İ İ İ İ DOCKER (Docker nedir ? ) Mustafa Akocak
  • 2. Docker Nedir ? SDÜ-CYBERLAB (Docker nedir?) Klasik olarak bir tanımla başlamamız gerekirse Docker, dünyada en çok kullanılan yazılım konteynerleştirme platformudur. Konteynerleştirme konteyner içine koyma anlamına gelir. Docker, diğer sanallaştırma çözümleri gibi tüm bir işletim sistemi ve üzerindeki her şeyi hedef almak yerine sadece uygulamaları baş köşeye oturtur ve onları tek başlarına çalışabilecekleri ve tamamen kendilerine ait olan Konteyner'lerde çalıştırır. Docker, Linux Kernel’e 2008 yılında eklenen Linux Containers (LXC) üzerine kurulu bir teknolojidir
  • 3. Docker nedir ? SDÜ-CYBERLAB (Docker nedir)) Diğer sanallaştırma çözümleri asıl makinada bulunan "Host Operating System" üzerinde çalışan "Guest" işletim sistemlerine ihtiyaç duyar.Bu sanallaştırma araçlarında sistem şekildeki gibi çalışır.
  • 4. Docker nedir ? SDÜ-CYBERLAB (Docker nedir) Docker ise aynı yalıtılmış ortamı direk olarak "Host" işletim sistemi üzerinden sunar..Docker esas olarak linux kernelinde bulunan Linux Container teknolojisine dayanır.Docker container teknolojisi şekilde ki gibi çalışır.
  • 5. Docker nedir ? SDÜ-CYBERLAB (Docker nedir) Docker ise aynı yalıtılmış ortamı direk olarak "Host" işletim sistemi üzerinden sunar..Docker esas olarak linux kernelinde bulunan Linux Container teknolojisine dayanır.Docker container teknolojisi şekilde ki gibi çalışır.
  • 6. Docker nedir ? SDÜ-CYBERLAB (Docker nedir) LXC nedir ? lxc, açılımıyla linux containers, linux sistemlerde kullanabileceğiniz bir başka virtualization uygulaması/method’udur. En öne çıkan yanı tam sanallaştırma yerine, bir init process’inin etrafında kurulu belirli process’lerin farklı bir kök dizini altında çalıştırılarak sanallaştırmanın gerçekleştirilmesidir. Bunun yanında lxc, kernel’in cgroups, namespace, bridging, virtual lan gibi özelliklerden yararlandığı için chroot ile full-vm arasında bir noktada denilebilir. Full-vm’ler gibi resource management uygulanabilir, device’lar paylaşılabilir. Full-vm’lere oranla kurmak, yönetmek, yürütmek oldukça daha hızlı ve basittir.
  • 7. Mimari SDÜ-CYBERLAB (Docker nedir) Docker temel iki parçadan oluşmaktadır 1- Linux Kernel’la direkt iletişim halinde olan Docker Daemon, 2- Docker Deamon ile iletişim kurmamıza olanak tanıyan Docker CLI (Command-Line Interface)’dır. Linux’ta hem Docker Daemon hem de Docker CLI doğal olarak direkt Linux üzerinde koşmaktadır. Windows ve Mac OS X’te ise Docker CLI Windows ve Mac OS X işletim sistemleri üzerinde koşmakta, Docker Daemon ise bu işletim sistemlerinde bir Hypervisor (duruma göre VMware, VirtualBox, Hyperkit, Hyper-V) yardımıyla çalıştırılan Linux üzerinde koşmaktadır.
  • 8. Mimari SDÜ-CYBERLAB (Docker nedir) Windows ve Mac OS X’teki mimari aşağıdaki şekilde resmedilmiştir.
  • 9. Container SDÜ-CYBERLAB (Docker nedir) Docker Daemon tarafından Linux çekirdeği içerisinde birbirinden izole olarak çalıştırılan process’lerin her birine verilen isimdir. Virtual Machine (Sanal Makina) analojisinde Docker’ı Hypervisor’e benzetirsek fiziksel sunucu üzerinde halihazırda koşturulmakta olan her bir işletim sisteminin (sanal sunucunun) Docker’daki karşılığı Container’dır. Container’lar milisaniyeler içerisinde başlatılabilir, istenen herhangi bir anda duraklatılabilir (Pause), tamamen durdurulabilir (Stop) ve yeniden başlatılabilirler.
  • 10. Image ve Dockerfile SDÜ-CYBERLAB (Docker nedir) Image Docker Daemon ile çalıştırılacak Container’ların baz alacağı işletim sistemi belirtir. Dosya sisteminin yapısı ve içerisindeki dosyaları, koşturacağı programı belirleyen ve içeriği metin bazlı bir Dockerfile ile belirlenen binary’ye verilen isimdir.
  • 11. Docker CLI SDÜ-CYBERLAB (Docker nedir) Kullanıcının Docker Daemon ile konuşabilmesi için gerekli komut setini sağlar. Registry’den yeni bir Image indirilmesi, Image’dan yeni bir Container ayağa kaldırılması, çalışan Container’ın durdurulması, yeniden başlatılması, Container’lara işlemci ve RAM sınırlarının atanması vb komutların kullanıcıdan alınarak Docker Daemon’e teslim edilmesinden sorumludur.
  • 12. Docker Registry SDÜ-CYBERLAB (Docker nedir) DockerHub‘da topluluğun ürettiği Image’lar ücretsiz ve sınırsız indirilebilir, oluşturulan yeni Image’lar gerek topluluk ile gerekse kişisel veya şirket referansı için açık kaynaklı (ücretsiz) veya kapalı kaynaklı (ücretli) yüklenebilir ve sonradan indirilebilir Cloud’da hizmet veren DockerHub’ın yanında Image’larını kendi Private Cloud’unda tutmak isteyenler için Docker’ın sunduğu Private Registery hizmeti de vardır.
  • 13. Docker Install SDÜ-CYBERLAB (Docker nedir) Docker linux komut satırında kurulum için sırası ile aşağıdaki komutları uygulamak yeterli olur. 1. sudo apt-get update -y 2. sudo apt-get install apt-transport-https ca-certificates curl software-properties-common 3. curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - 4. sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
  • 14. Docker Install SDÜ-CYBERLAB (Docker nedir) Kurulum aşaaması tamamlandıktan sonra “docker version” komutu kullarak sisteme kurmak istediğimiz uygulamanın kurulup kurulmadığını anlamamıza yardımcı olur.Komutun çıktısı şu şekilde olmalıdır.
  • 15. Docker Clı SDÜ-CYBERLAB (Docker nedir) Docker’ı sistemimize kurduğumuza göre ilk olarak DockerHub’dan bir kopyasını indirmek için docker pull hello-world komutunu verin. Şöyle bir çıktı almamız gerekir.
  • 16. Docker CLI SDÜ-CYBERLAB (Docker nedir) İlk docker imagemızı lokalimiz indirdikten sonra localimiz de indirilen bu image görüntülemek için “docker images” komutunu çalıştımamız yeterli olacaktır.
  • 17. Docker CLI SDÜ-CYBERLAB (Docker nedir) Görüntülemiş olduğumuz hello-world imagemızı çalıştırmak için ise “Docker run hello-world” komutunu çalıştırmak yeterlidir. Bu komut image eğer daha önceden Pull edilmediyse öncelikle Image’ı Pull etmekte ve sonra çalıştırmaktadır.
  • 18. Docker CLI SDÜ-CYBERLAB (Docker nedir) Çalıştırılan docker run hello-world komutunu verdiğimizde Daemon ilgili Image’dan yeni bir Container oluşturdu ve Container’ı çalıştırmaya başladı. Container da yukarıda okuduğumuz çıktıyı oluşturdu ve bu çıktı Daemon’dan Client’a gönderildi ve ekrana basıldı.
  • 19. Docker CLI SDÜ-CYBERLAB (Docker nedir) Bu adımdan sonra çalıştırmış olduğumuz container’ler hakkında bilgi edinmek istersek ilk olarak “docker ps “ komutunu ile karşılaşırız. Bu komut docker clı da çalıştırmış odluğumuz ve halihazırda devam eden containerlerin bilgilerini çıktı olarak verir.Burada gözükmemesinin sebebi ise hello-world imagemızın sadece anlık olarak çalışıp kapanmasından dolayı kaynaklanır.
  • 20. Docker CLI SDÜ-CYBERLAB (Docker nedir) Peki docker deamonda önceden çalıştırmış olduğumuz bir image’ları nasıl görüntüleyebiliriz.Burada “-a” parametresi yardımıza koşar eğer önceden docker deamon da çalışmış olan image’ları listelemek isteresek “Docker ps -a” komutunu çalıştırmak yeterli olacaktır.
  • 21. Docker CLI SDÜ-CYBERLAB (Docker nedir) Bir önceki adımda çıkış yapan Container’ı tekrar başlatabiliriz. Bu işlemi docker start komutu ile yapabiliriz. -a parametresi kullanmazsak çalıştırılan container ile ilgili sadece id bilgisini ekrana basar.Eğer kullanırsak çalışan container’ı terminale attach ederek gerçekleşen outputları ekrana basar.
  • 22. Docker CLI SDÜ-CYBERLAB (Docker nedir) Peki biz container’ı -a parametresi ile çalıştırdığımız zaman çalışmıyor mu ? Tabiki de çalışıyor.Peki çalışan bu container ile ilgili oluşan hareketleri nasıl görüntüleyebilriz.Burada ise “docker log <container_id> komutu ile bu işlem sağlanır.
  • 23. Docker CLI SDÜ-CYBERLAB (Docker nedir) Oluşturulan docker image’larımızı çok fazla oldu diyelim bu image’lar arasında gereksiz olanlar olduğunu düşünelim bu image’ları localimizden kaldırmak için “docker rmi <id>” komutu ile image’ı silebiliriz.Burada “-f” parametresi kullanırsak container çalışır durumda bile olsa container’ı kaldırır.
  • 24. Docker CLI SDÜ-CYBERLAB (Docker nedir) Indirmiş olduğumuz bu docker image’ı çalışmaya başladı. Peki çalışan bu nginx web serverı localimized görüntülemek için tarayıcımızda “localhost:8080” adresini girmemiz yeterli olacaktır. Burada “8080” yazmamızın sebebi -p paremetresinden dolayıdır. “-p” parametresi container’ın internal 80 portunu external 8080 portuna yönlendir anlamına gelir. Bu demek oluyor ki externaldan 8080 portundan gelen istekleri container’ ın 80 portuna yönlendir anlamına gelir.
  • 25. Docker CLI SDÜ-CYBERLAB (Docker nedir) Docker ps komutunu çalıştırdığımız zaman ise nginx web server’ın hale çalıştığını görüntülüyoruz. Bu çalışan image’ın terminal ekranına girmek için ise “docker exec -it <id> /bin/bash” komutnu çalıştırmak yeterli olacaktır.Bu komut içerisin “-i” parametresi interaktif terminali “-t” parametresi ise bu terminalin ekran attach olmasını sağlar.