CentOS 8 | RHEL 8 üzerinde Docker ve Compose'u Kurun


Bu kılavuzda, CentOS 8 | RHEL 8 üzerinde Docker CE kurulum adımlarında sizlere yol göstereceğiz. Ayrıca RHEL 8/CentOS 8 Linux üzerinde Docker Compose'un nasıl kurulacağını da ele alacağız. Docker, RHEL 8 üzerinde resmi olarak desteklenmemektedir çünkü Red Hat araçları olan buildah ve podman ile değiştirilmiştir. RHEL 8 Linux sürümünde sunulan yeni özellikler hakkında daha fazla bilgi edinebilirsiniz.

  • Red Hat Enterprise Linux 8 (RHEL 8) Yeni Özellikler ve İnceleme

Ama ya her gün Docker kullanıyorsanız ve hemen buildah veya podman’a geçemiyorsanız? Endişelenmeyin, çünkü RHEL 8/CentOS 8 üzerine Docker ve Docker Compose yüklemenin bir yolu var. Docker, uygulamalarınızı konteynerler içinde oluşturmanıza, dağıtmanıza ve çalıştırmanıza olanak tanıyan bir araçtır. Konteynerler, bir geliştiricinin bir uygulamayı bağımlılıklarıyla birlikte paketlemesine ve tek bir paket olarak göndermesine imkan tanır. Konteynerler genellikle Mikroservis ortamlarında kullanılır.

Docker Bileşenleri/Terimler

Kurulum ve kullanım örneklerine geçmeden önce netleştirmemiz gereken bir dizi Docker'a özgü terim vardır. Aşağıda Docker ekosisteminde yaygın olarak kullanılan terimler bulunmaktadır.

  • Docker daemon: Buna Docker Engine de denir, konteynerlerin oluşturulmasından ve çalıştırılmasından sorumlu olan, ana sistemde çalışan bir arka plan sürecidir.
  • Docker İstemcisi: Kullanıcının Docker daemon ile etkileşimde bulunmak için kullandığı bir komut satırı aracıdır.
  • Docker Görüntüsü: Bir görüntü, aslında bir kapsayıcının anlık görüntüsü olan değiştirilemez bir dosyadır. Bir docker görüntüsü, uygulamaların çalışması için gereken bir dosya sistemi ve uygulama bağımlılıklarına sahiptir.
  • Docker konteyneri: Bu, bir uygulama ve onun bağımlılıklarıyla birlikte çalışan bir docker imajının örneğidir. Her konteynerin benzersiz bir işlem kimliği vardır ve diğer konteynerlerden izole edilmiştir. Konteynerlerin paylaştığı tek şey Çekirdektir.
  • Docker kayıt defteri: Bu, Docker konteyner görüntülerinin depolanması ve iletilmesinden sorumlu bir uygulamadır. Özel veya herkese açık olabilir.

CentOS 8 | RHEL 8 Üzerine Docker CE Kurulumu

Şu ana kadar Docker tanıtımı ve terminolojilerini ele aldık. RHEL 8/CentOS 8 üzerine Docker CE kurulumuna hazır olmalıyız. Kurulum işlemine Docker ile başlayacak, ardından Docker Compose yükleyeceğiz.

Docker'ın iki farklı sürümü mevcuttur.

  • Community Sürümü (CE): Docker ile başlamayı düşünen bireysel geliştiriciler ve küçük ekipler için idealdir ve konteyner tabanlı uygulamalarla deneme yapmayı sağlar.
  • Kurumsal Sürüm (EE): Ölçekli üretimde iş açısından kritik uygulamaları geliştiren, gönderen ve çalıştıran kurumsal geliştirme ve BT ekipleri için tasarlanmıştır.

Docker Enterprise Edition'ı kullanmak için aktif bir lisans gereklidir. Bu rehberde, RHEL 8 üzerine Docker CE kuracağız. Kurulumdan önce Docker deposunu ekleyelim.

### CentOS 8 ###
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

### RHEL 8 ###
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo

Bu komut, Docker depo dosyasını /etc/yum.repos.d/docker-ce.repo konumuna indirecektir. Hadi RPM indeks önbelleğini güncelleyelim.

### CentOS 8 ###
$ sudo yum makecache 
CentOS Linux 8 - AppStream                                                                                                                                             23 kB/s | 4.3 kB     00:00
CentOS Linux 8 - BaseOS                                                                                                                                                20 kB/s | 3.9 kB     00:00
CentOS Linux 8 - Extras                                                                                                                                               9.2 kB/s | 1.5 kB     00:00
Docker CE Stable - x86_64                                                                                                                                             291 kB/s |  19 kB     00:00
DigitalOcean Droplet Agent                                                                                                                                             51 kB/s | 3.3 kB     00:00
Metadata cache created.

### RHEL 8 ###
$ sudo yum makecache 
Updating Subscription Management repositories.
Docker CE Stable - x86_64                                                                                                                                             14 kB/s | 3.8 kB     00:00    
Red Hat Enterprise Linux 8 for x86_64 - AppStream (RPMs)                                                                                                              33 kB/s | 2.8 kB     00:00    
Red Hat Ansible Engine 2.8 for RHEL 8 x86_64 (RPMs)                                                                                                                   29 kB/s | 2.4 kB     00:00    
Red Hat Enterprise Linux 8 for x86_64 - BaseOS (RPMs)                                                                                                                 30 kB/s | 2.4 kB     00:00    
Red Hat Satellite Tools 6.6 for RHEL 8 x86_64 (RPMs)                                                                                                                  29 kB/s | 2.1 kB     00:00    
Metadata cache created.

Docker'ın tüm eski sürümlerini ve ilgili bağımlılıklarını kaldırmanız gerekebilir. Ayrıca, eğer zaten yüklüyse, Podman ve ilgili bağımlılıklarını da kaldırın.

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine \
                  podman \
                  runc

Son olarak, terminalinizde aşağıdaki komutu çalıştırarak Docker CE'yi kurun.

sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Podman ile bağımlılık sorunları yaşarsanız silmeye izin verin.

sudo yum install docker-ce --allowerasing

Kurulumu kabul etmek için klavyenizdeki y tuşuna basın:

...
Transaction Summary
================================================================================================================================================================================================
Install  12 Packages

Total download size: 93 M
Installed size: 389 M
Is this ok [y/N]: y

GPG anahtarını da içe aktar.

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                                            51 MB/s |  93 MB     00:01
Docker CE Stable - x86_64                                                                                                                                        44 kB/s | 1.6 kB     00:00
Importing GPG key 0x621E9F35:
 Userid     : "Docker Release (CE rpm) <[email >"
 Fingerprint: 060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35
 From       : https://download.docker.com/linux/centos/gpg
Is this ok [y/N]: y

Docker hizmetini başlatın ve sistem açılışında çalışacak şekilde etkinleştirin.

$ sudo systemctl enable --now docker
Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /usr/lib/systemd/system/docker.service.

Docker servisinin durumu çalışıyor olarak görünmelidir.

$ systemctl status  docker

docker grubu oluşturulmuştur, ancak gruba hiçbir kullanıcı eklenmemiştir. Docker komutlarını sudo kullanmadan çalıştırmak için kullanıcıyı bu gruba ekleyin.

$ sudo usermod -aG docker $USER
$ newgrp docker
$ id $USER
uid=1000(jmutai) gid=1000(jmutai) groups=1000(jmutai),10(wheel),984(docker)

Docker'ı sudo kullanmadan kullanmak için çıkış yapıp tekrar giriş yapın. Yüklü Docker sürümü şu şekilde kontrol edilebilir:

docker version

Docker imajını çek

Son adım, kurulumu test etmek için bir deneme Docker konteyneri indirmektir.

$ docker pull alpine
Using default tag: latest
latest: Pulling from library/alpine
8e402f1a9c57: Pull complete 
Digest: sha256:644fcb1a676b5165371437feaa922943aaf7afcfa8bfee4472f6860aad1ef2a0
Status: Downloaded newer image for alpine:latest

$ docker pull hello-world
Using default tag: latest
latest: Pulling from library/hello-world
2db29710123e: Pull complete
Digest: sha256:cc15c5b292d8525effc0f89cb299f1804f3a725c8d05e158653a563f15e4f685
Status: Downloaded newer image for hello-world:latest
docker.io/library/hello-world:latest

İndirilen resimleri listele.

$ docker images
 REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
 alpine              latest              5cb3aa00f899        2 days ago          5.53MB
 hello-world         latest              fce289e99eb9        2 months ago        1.84kB

İndirilen görüntüden alpine konteynerini çalıştırarak Docker CE'nin doğru şekilde çalıştığını doğrulayın.

$ docker run -it --rm alpine /bin/sh
/ # apk update
fetch http://dl-cdn.alpinelinux.org/alpine/v3.15/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.15/community/x86_64/APKINDEX.tar.gz
v3.15.4-87-g89e29fdace [http://dl-cdn.alpinelinux.org/alpine/v3.15/main]
v3.15.4-87-g89e29fdace [http://dl-cdn.alpinelinux.org/alpine/v3.15/community]
OK: 9754 distinct packages available
/ # exit

Merhaba dünya konteyneri çalıştır

$ docker run -it --rm hello-world

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

CentOS 8'e Docker Compose Kurulumu | CentOS 8

Docker'ı kurduk ve çalıştırıyoruz, şimdi Docker Compose'a geçelim. Docker Compose, çoklu konteyner Docker uygulamalarını tanımlamak ve çalıştırmak için kullanılan bir araçtır.

Uygulama servisleri bir Compose dosyası kullanılarak yapılandırılır. Docker komutlarını çalıştırmanın aksine, yapılandırmanızdaki tüm servisleri oluşturmak ve başlatmak için tek bir komut yeterlidir. Docker Compose, geliştirme, test ve hazırlık ortamları ile CI iş akışları için harika bir araçtır.

En son Docker Compose sürümünü Linux’a kurmak için ayrı rehberimizi takip edin.

  • Linux'ta Docker Compose'u Kur

Bu kılavuzu kısa tutmak adına, Docker Compose kullanımına girmeyeceğiz. Daha fazla bilgi edinmek için Resmi Docker belgeleri ve Docker Compose belgelerini incelemenizi tavsiye ederim.

Docker UI Kur – İsteğe Bağlı

Farklı Docker sunucularınızı ve konteynerlerinizi kolayca yönetmenizi sağlayan bir Docker yönetim arayüzüne ihtiyacınız varsa, lütfen Portainer'ı deneyin. Kurulumu ve kullanımı kolaydır.

  • Portainer Docker UI yöneticisi nasıl kurulur

Docker konteynerlerini izleme

Docker konteynerlerini izlemek, Netdata, Ctop veya Prometheus ve Grafana gibi izleme araçları kullanılarak yapılabilir. Aşağıdaki rehberler faydalı olmalıdır.

  • Ctop – Konteyner metrikleri için top komutu
  • RHEL 8/CentOS 8 üzerine Netdata Nasıl Kurulur
  • Linux üzerinde Harbor Docker kayıt defterini kur