Bugun...


Geleceğin Çözümü Docker Teknolojisi -2
Docker Nedir, Docker Nasılı Kurulur, Temel Docker Komutları, Docker ile Sanallaştırma Platformları Karşılaştırması, Docker Konteyner Yüklenmesi ve Çalıştırılması Nasıl Yapılır?

Geleceğin Çözümü Docker Teknolojisi -2

DOCKER NEDİR, NASILI KURULUR, TEMEL DOCKER KOMUTLARI VE DOCKER İLE SANALLAŞTIRMA PLATFORMLARI KARŞILAŞTIRMASI - 1

 

TEMEL DOCKER KOMUTLARI

Image ve Container Listeleme

└─# docker Images --> Docker sistemimize yüklediğimiz Images (İmajları) Listelemek istersek docker komutu ve images dememiz yeterli olacaktır.

└─# docker container ps

└─#docker container ps  --> Docker Container Listelemek için bu iki komutu kullanabiliriz.

└─#docker container ps  -a --> Ancak çalışmayan yani o anda aktif olmayan konteynerleri da listelemek istersek –a parametresini kullanabiliriz.

Çalışan Container Bilgisini Ekrana Yazdırma

└─# docker container inspect ContainerID--> Çalışan Docker Container Özelliklerini Yazdırmak için inspect parametresini kullanmamız yeterli olur.

Bu komut önemli olduğunu düşündüğüm bir komuttur. Nitekim container ile ilgili yaptığımız veya yapmayı planladığımız konfigürasyonları da burayı baz alarak yapmamız gerekmektedir. Örneğin İmaj bilgileri, Host bilgileri, Network bilgileri çok detaylı bir şekilde tüm bilgileri görebileceğimiz bir komuttur.

Örnek Container indirmek, Çalıştırma ve Test Etme (NGINX, Linux Alpine)

İnternette Docker ile ilgili olarak araştırma yapanların Türkçe kaynakların çoğunda rastladığı ilk örneklerden birisi olan NGINX Örneği ile Docker Container nasıl oluşturulur ve çalıştırılır hep birlikte uygulamalı olarak bir de biz yapmış olalım.

İlk adım olarak docker search nginx yazıp nginx ile ilgili olarak hazır imajların bir listesini inceleyip kendimize uygun olanı indiriyoruz. İndirme işlemi için docker pull ngnix dememiz yeterli olur.

Daha sonra indirdiğimiz docker imajını konteyner haline getirip çalıştırmak içinde şöyle bir komut yazıyoruz.  docker container run -d  --name ngincml -p 80:80 nginx komutunu kullanıyoruz. Bu komutla docker indirdiğimiz imajdan bir konteyner oluşturup –d komutu ike arkaplanda çalışmasını ve –name ile isiminin ngincml olmasını ve –p parametresi ile de docker konteynır makinesinin 80 portunun makinemizin 80 portuna forward edilmesini yani yönlendirmesini sağladık.

 

Yukarıda da görüleceği üzere Docker üzerinde imajı indirip publish ettik ve kendi makinemizin tarayıcısından loopback ip adresini yazarak (127.0.0.1) docker konteyner üzerinden yönlendirdiğimiz 80 portuna bağlanma isteği yolladığımızda nginx ara yüzü bizi karşılamaktadır. Burada docker konteyner üzerinden daha önce kendi makinemizin 80 portuna forward işlemi yaptığımız nginx web server (NGINX; yüksek eş zamanlı çalışma kabiliyeti, yüksek performans ve düşük hafıza kullanımına odaklanılarak tasarlanmış bir Web sunucusudur. Aynı zamanda ters vekil sunucusu, yük dengeleyici ve HTTP ön belleği olarak da kullanılabilir. Vikipedi) uygulamasına bağlanmış olduk.

 

Container Komut Satırına Erişmek, Bağlanmak

Peki diyelim ki konteyner makinemize bağlanmak istediğimiz de ne yapmalıyız. Docker bunu da çok basit bir şekilde yapmamıza imkân tanımaktadır Aşağıdaki komutu yazdığımızda direkt olarak docker makinemizin komut satırına bağlanmış olacağız.

└─# docker container exec  -it cemalnginx /bin/bash

Not: (/bin veye /bin/bash/ … ) gibi dizinler docker üzerinde çalıştığı işletim sistemi ve platforma göre farklılıklar gösterebilir.  

└─# docker container ps--> ile çalışan konteynerlarımızı görelim. Şimdi de yukarıda ayaklandırdığımız konteyner makinemizin komut satırına bağlanalım.

└─# docker container exec  -it ngincml /bin/bash --> komutu ile konteyner makinemizin komut satırına düşmüş olacağız.  

ROOT kullanıcısı ile bağlanmak için └─# docker run -it -u root ContainerID/Name parametrelerini kullanabiliriz.

Şimdi en küçük boyutlu olarak bilinen çok yaygın olarak kullanılan ikinci bir Linux Distrosu olan Alpine için imajı indirip konteyner haline getirdikten sonra komut satırına bağlanıp ihtiyacımız olan birkaç uygulama kuralım. Ancak burada kaçırmamamız gereken şey Alpine distrosu diğer konteynerlardan ayıran bir özellik var. Örneğin nginx için konteyner haline getirmek için run komutu ile ayaklandırdığımız da birkaç saniye sonra kapanmaktadır. Dolayısıyla burada direkt etkileşimli olarak çalıştırıp üzerinde işlem yapıyoruz. Elbette bunun da arka planda sürekli olarak çalışmasını sağlayan parametreler de mevcuttur. Şimdi öncelikle imajı konteyner haline getirip üzerine nasıl programlar kuracağımızı gösterelim.

└─# docker container run -d --name Alpine alpine:latest--> komutu ile makinemizi konteyner haline getirdik ancak docker container ps dediğimiz çalışan konteynerler arasında göremeyeceğiz. Çünkü çalışıp kapanmıştır. Bunun için docker container ps –a dediğimizde aslında kaç defa çalıştırdığımızı da görmüş olacağız.

└─# docker run -it alpine --> komutu ile etkileşimli bir şekilde konteyneri başlatalım ve komut satırına bağlanalım.  Alpine distrosuna uygulama kurmak için apk add UygulamaAdi dememiz yeterli olur. Docker arka planda sürekli çalışsın istersek de docker run -d alpine dememiz yeterli olur.

└─# apk add mysql  -->Mysql kurmak için

└─# apk add python --> Python kurulumu yapılmasını sağlayabiliriz.

*:Network bağlantım dolayısıyla hata almışım 

 

 

Container Durdurmak Başlatmak

Zaten daha önce çalıştırmış olduğumuz nginx docker konteyneri durdurup tekrar başlatabiliriz. Bunun için start ve stop parametrelerini kullanmamız yeterli olur.

└─# docker container  stop 2d97585979c1

2d97585979c1

└─# docker container  start 2d97585979c1

2d97585979c1 

                                                                                                                                                

Not: Docker parametrelerini kullanırken tıpkı Linux komutları gibi tab tuşunu kullanmamız kullanılabilecek parametre listesini gösterir.

 

Container Kaldırmak (rm)

└─# docker rm ContainerID1, ContainerID2, …

└─# docker stop $(docker ps -a -q) && docker rm $(docker ps -a -q)-->Bu komutla tüm konteynerlarımızı silmiş olacağız.

Unutmamak gerekir ki bizim burada sildiğimiz sadece konteynerlar yani kurulu imajlardı. Yani imajlarımızın kendisini pull komutu indirdiklerimizi silmedik. İmajlarımızı görmek istersek docker images komutu ile kontrol edebiliriz.

 

Ana Makineden Docker Container’a veya Container’dan Ana Makineye Dosya Kopyalamak

Docker Konteyner’dan Host makinemize dosya kopyalamak için cp komutunu kullanırız.

└─# docker container cp 2d97585979c1:/var/cemal ./home/kali/Desktop --> komutu ile de Docker üzerinde Var dizinin altında bulunan cemal isimli dosyayı host makinemizin masaüstü dizinine kopyalayabiliriz.

Host makinemizden Docker Konteyner’a dosya kopyalamak için cp komutu ile ana makineden konteynere dosya kopyalamak için kullandığımız parametreleri tersine çevireceğiz.

└─# docker container cp ./*.png  2d97585979c1:/var/ à komutu ile kendi makinemizde bulunduğumuz dizindeki png uzantılı tüm dosyaları Konteyner üzerindeki var klasörünün altın kopyalamış olacağız. Bu şekilde web sitelerimizi ve çok daha büyük boyutlu dosyalarımızı kopyalayabiliriz.

Container Canlı Durumlarını İncelemek

└─# dcoker stats --> Çalışan canlı bir konteyner için kaynak kullanımı durumunu (RAM, CPU istatistiklerini) görüntülemek için kullanılan bir komuttur.

└─# docker container stats-->bu komut da docker stats komutu ile aynı işi yapar.

Docker Container Adını Değiştirmek

└─$ docker container rename ContainerEskiAdi/ID ContainerYeniAdi --> komutu ile containerımıza yeni bir isim verebiliriz.

Not:Docker konusuna ilk girişimde niyetim tek makalede işi bitirmekti. Ancak yüzdükçe daha çok derine indim, derine indikçe daha çok şey gördüm, gördükçe de paylaşmak istedim.




Kaynak: cemal aktekin

Editör: cemal aktekin

Bu haber 967 defa okunmuştur.

YORUMLAR

Henüz Yorum Eklenmemiştir.Bu Haber'e ilk yorum yapan siz olun.

YORUM YAZ



FACEBOOK YORUM
Yorum

İLGİNİZİ ÇEKEBİLECEK DİĞER HABERLER
ÇOK OKUNAN HABERLER
  • BUGÜN
  • BU HAFTA
  • BU AY
SON YORUMLANAN HABERLER
YUKARI