Docker, çoğunlukla uygulamaları geliştirmek, göndermek ve çalıştırmak için kullanılan açık kaynaklı bir teknolojidir. Docker ile bir uygulamayı ve tüm bağımlılıklarını bir Docker çalıştırma konteynerine paketlediğinizde, herhangi bir ortamda çalışacağından emin olmanızdır. Ek olarak, Sanal Makineler (VM'ler) kullanırken kullandığınız platformun aksine, kullandığınız platform konusunda endişelenmenize gerek yoktur. Docker konteynerleri her yerde çalışır.Docker konteyneri, kodu ve tüm bağımlılıklarını depolayan standart bir yazılım birimidir, farklı ortamlarda hızlı ve güvenilir bir şekilde çalışır. Docker kapsayıcı görüntüsü, bir uygulamayı çalıştırmak için ihtiyacınız olan her şeye sahip olan hafif, bağımsız, yürütülebilir bir yazılım paketidir - kod, çalışma zamanı, sistem araçları, sistem kitaplıkları ve ayarlar.
Hem Linux hem de Windows tabanlı uygulamalar için mevcut olan konteynerli yazılım, altyapıdan bağımsız olarak her zaman aynı şekilde çalışır. Konteynerler, yazılımı ortamından izole eder ve farklılıklara rağmen tek tip olarak çalışmasını sağlar.
Konteynerler , imajların çalışır durumdaki halleridir.
Docker Compose, çoklu konteyner mimmarilerinin hazırlanması için kullanılan bir uygulamdır.
Docker Machine, docker konteynerlerinin sanal makinelerde dağıtılmasını ve yönetilmesini sağlayan bir araçtır.
Docker Hub, docker imajlarının saklanmasını ve dağıtılmasının sağlayan genel bir repo uygulamasıdır.
Docker Engine, uygulamalarınızı oluşturmak ve kaplamak için açık kaynaklı bir konteyner teknolojisidir. Dockerfile veya “docker-compose.yml” ‘den bilgileri alarak imajları oluşturur ve çalıştırır . Docker CLI üzerinden bir “docker” komutunu kullandığında yapılması gereken işlemleri yapması için Docker Engine ile iletişime geçer.
VM (Virtual Machine)
OS : Tam işletim sistemi
İzolasyon : Yüksek
Çalışır hale gelmesi : Dakikalar
Versiyonlama : Yok
Kolay paylaşılabilirlik : Düşük
Docker
OS : Küçültülmüş işletim sistemi imajı
İzolasyon : Daha düşük
Çalışır hale gelmesi : Saniyeler
Versiyonlama : Yüksek
Kolay paylaşılabilirlik : Yüksek
- Docker Community Edition sürümünün güncel halinin yüklenmesi
curl -sSL https://get.docker.com/ | sh
- Docker versiyon kontrolü
docker version
- Docker grubuna kullanıcı ekleme
sudo usermod -aG docker kullanici_adi
- Docker servisinin başlatılması
sudo systemctl start docker
- Docker Servisinin kontrolü
systemctl status docker
- Debian
sudo apt install docker-compose
sudo apt install docker-machine
- CentOS
yum install docker-compose
yum install docker-machine
- Docker, veri bloklarını sabit disk veya optik disk sürücüsü gibi fiziksel bir cihaza değil, normal bir dosyanın bloklarına eşleyen bir blok cihaz olan loop modülüne de bağlıdır
- Docker, kurulum sırasında döngü modülünü otomatik olarak etkinleştirmelidir. "loop" un bir çekirdek modülü olarak yüklenip yüklenmediğini kontrolü
lsmod | grep loop
- loop modülünü aktifleştirme
- ilk komut "loop" kelimesini soldaki komutun standart girişine, yani tee komutuna geçirir. Daha sonra tee "loop" kelimesini loop.conf dosyasına yazar. Modprobe komutu döngü modülünü Linux çekirdeğine ekler.
tee /etc/modules-load.d/loop.conf <<< "loop"
modprobe loop
- Docker Community Edition sürümünün kararlı halinin yüklenmesi
sudo pacman -Syu
sudo pacman -S docker
- Docker versiyon kontrolü
docker info
- Docker grubuna kullanıcı ekleme
sudo usermod -aG docker kullanici_adi
- Docker servisinin başlatılması
sudo systemctl start docker.service
- Docker servisinin aktif edilmesi
sudo systemctl enable docker.service
- Docker Servisinin kontrolü
systemctl status docker.service
- Docker Compose ve Docker Machine Kurulumu
sudo pacman -S docker-compose
sudo pacman -S docker-machine