19 Temmuz 2016 Salı

Docker -2



Docker'ın genel amacı uygulamaları ayrı ayrı konteynerların içine koyup konteynerları yönetmek. Yani her konteynerın içinde sadece tek uygulamanın kodu olur. Birden fazla da uygulamanın kodu konulabilir ama genel mantık tek tek olmasıdır. Konteyenerlar işletim sistemine gerek duymaz. Buda zamandan avantaj sağlar. Konteynerlar kendi aralarında izoledirler. Yani çalışan bir konteyner diğer bir konteynerı etkilemez ve ondan haberdar değildir. İstenilirse konteynerlar birbirine bağlanabilir.


Docker istemci-sunucu mimarisi kullanır.




Docker istemci(client), docker daemonla konuşur. Docker istemci ve daemon ikiside aynı sistem üzerinde çalışabilir ya da docker istemcisini uzak bir docker daemon a bağlayabilirsiniz. Docker istemci ve daemon soketleri üzerinden ya da RESTful API üzerinden iletişim kurar.


Docker Image:
Salt okunur bir şablondur. Yazılımlarımızı yüklediğimiz bir sistemdir. Imageler konteynerları oluşturmak için kullanılır. İstersek imageleri kendimiz oluşturabilir istersek hazır olanları alıp kullanabiliriz.
 
Her bir image katmanları bir dizi içerir. Bir docker image için değişiklik yaptığımızda  yeni bir katman oluşur. Imageler konteynerların ne tuttuğunu docker'a anlatır.


Docker Konteyner:
Bir docker image'i üzerinde koştuğunuz bir dizi komutun sistemdeki diğer tüm servislerden izole çalıştığı, sanal ortamdır.


Docker Registry:
Docker imagelerinizi depoladığınız, push-pull işlemlerini yaptığınız depodur.


Docker Daemon:
Ana makine üzerinde çalışır. Daemon ile doğrudan etkileşim kurulamaz ancak docker istemci ile ulaşılabilir.


Docker İstemci(client):
Birincil kullanıcılar için docker arayüzüdür. Kullanıcılardan komutları alır ve sonra docker daemon ile iletişime geçmeyi sağlar.


Kitematic:
Docker konteynerları oluşturmak, çalıştırmak için kullanabileceğiniz ve Docker Hub görüntüleri bulmak ve çekmek için bir GUI.


Dockerfile:
Bir image oluşturulduğunda yapılacak talimatları içeren çekirdek dosyasıdır.


Dockerfile örneği:


FROM ubuntu:latest


MAINTAINER Scott P. Gallagher <email@somewhere.com>


RUN apt-get update && apt-get install -y apache2


ADD 000-default.conf /etc/apache2/sites-available/
RUN chown root:root /etc/apache2/sites-available/000-default.conf


EXPOSE 80
CMD ["/usr/sbin/apache2ctl", "-D", "FOREGROUND"]


FROM: konteyner oluştururken başlamak istediğimiz image'i belirtir. İstersek sürümünüde belirtebiliriz.
MAINTAINER: dockerfile oluşturan kişiye ait bilgiler.
RUN: çalıştırılacak komutlar.
ADD, RUN: özel yapılandırma ekleri için gerekli olan satırlar
CMD: konteyner başlatıldığında çalıştırılan komutun tanımlanmasını sağlar.

Docker Machine:
Docker hostları oluşturmayı sağlayan bir yapıdır ve Docker Engine bunun üzerine kurulur.


Docker Engine:
Bir istemci-sunucu uygulaması. Deamon oluşturur ve docker nesnelerini yönetir. Docker nesneleri: image, konteyner, network...


Bazı Docker komutları


docker versiyonunu gösterir:
docker version


tüm komutlar hakkında bilgi almak için:
docker --help


bir komut hakkında bilgi almak için:
docker <command> --help


image için arama:
docker search <image_name>

image indirmek için:
docker pull <image_name>


image silmek için:
docker rmi <image_name>


hostaki imageleri görmek için: 
docker images
çalışan konteynerları görmek için:
docker ps


tüm konteynerları görmek için(çalışmayanlarda dahil):
docker ps -a


konteynerı calıştırmak için:
docker run -i -t <image_name>:<tag> /bin/bash/


docker run -d -p <host_port>:<container_port> <image_name>:<tag>


-d konteynerları sürekli olarak çalışmasını sağlar. Tek sefer çalıştırmak için -it kullanılabilir. -p host portları ile konteyner portlarını eşleştirmeyi sağlar.


konteyner silmek için:
docker rm <container_id>

konteyner üzerinde shell komutu çalıştıramak için:
docker exec -it <container_id> /bin/bash
bu sekilde bağlandığımızda root ile konteyner ssh üzerinden bağlanmış oluyoruz.


Konteynerları başlatmak için:
docker start <container_id>

konteynerı durdurmak için:
docker stop <container_id>

1 yorum:

  1. Lucky 88 Casino Hotel - Jammy Hub
    Lucky 88 Casino Hotel. Add your friends, family and business with Jammy 청주 출장샵 Hub, the place where 과천 출장마사지 fun meets 부천 출장샵 convenience! Get 서울특별 출장샵 in 안동 출장안마 touch with your local

    YanıtlaSil