Successfully reported this slideshow.
Your SlideShare is downloading. ×

Docker 101

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Upcoming SlideShare
Bmup_v1
Bmup_v1
Loading in …3
×

Check these out next

1 of 25 Ad

More Related Content

Similar to Docker 101 (20)

Advertisement

Recently uploaded (20)

Docker 101

  1. 1. İ İ İ İ İ İ DOCKER (Docker nedir ? ) Mustafa Akocak
  2. 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. 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. 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. 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. 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. 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. 8. Mimari SDÜ-CYBERLAB (Docker nedir) Windows ve Mac OS X’teki mimari aşağıdaki şekilde resmedilmiştir.
  9. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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.

×