Centos/RHEL 8’de Docker ve Docker Compose Kurulumu

Merhabalar, bu makalemde Centos/RHEL 8 işletim sistemlerinde Docker’ın Community Edition sürümünün kurulumu anlatılacaktır. Docker versiyonunun son sürümü tek komutla sisteme kurulabilmektedir.

RHEL 8 ve CentOS 8’in piyasaya sürülmesiyle, docker paketi varsayılan paket depolarından kaldırıldı, docker podman ve buildah ile değiştirildi. RedHat, Docker için resmi destek sağlamamaya karar verdi. Ancak Redhat, bir sunucu kümesinde, daha özel olarak Buildah ve Podman’da konteyner görüntüleri oluşturmak ve yönetmek için çeşitli yerleşik araçlar sunmaktadır. Bu araçlar docker uyumludur, ancak bir sunucu/istemci mimarisi gerektirirler. Birçoğu Docker konteynerleştirmeyi kullanmayı tercih ediyor ve bu makalemde de  Docker’ın harici bir depo kullanarak CentOS/RHEL 8 sürümlerinde nasıl kurulacağını göstermek istiyoruz.

Ön Gereksinimler;

  • Sudo ayrıcalıklarına sahip bir kullanıcı hesabı
  • Terminal erişimi,
  • İnternet bağlantısı
  • DNF yazılım paketi yükleyicisi (varsayılan olarak CentOS 8’e dahildir)
  • Firewalld manager devre dışı bırakılmalıdır. Kritik güvenlik özelliklerinin devre dışı bırakılması önerilmez, ancak CentOS 8’deki Firewalld manager, Docker container içindeki DNS isim çözümlemesini engellemektedir.
  • Temiz bir kurulum kullandığımızdan emin olmak gerekir. Mevcut Docker uygulamalarını (şu anda kurulu olabilir) kaldırmalıyız. Emin olmak için aşağıdaki komutu çalıştırabilirsiniz.  

yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine

yada dnf remove docker* komutunu kullanabilirsiniz.

Docker kurulumuna başlamadan önce; CentOS 8 paket deposu önbelleğini güncellenir. Bu işlem için “dnf makecache” komutunu kullanabilirsiniz.

Not : CentOS 8, YUM paket yöneticisi sürüm olarak v4.0.4’ü kullanmaktadır. Bu sürüm artık DNF (YUM) kullanmaktadır. DNF ve YUM gibi bir yazılım paketi yöneticisidir. Linux dağıtımlarında paketleri yükler, paketlerin güncelleştirilmesini yapar ve bu paketleri de kaldırır. CentOS 8 DF ile çok gelişmiş bir yazılım yönetim sistemine sahiptir. DNF teknolojisi daha yüksek performans sağlar, iyi tanımlanmış API’lere sahiptir ve modüler içeriği, bulut için AppStreams yazılımını, konteyner iş yüklerini ve CI / CD’yi destekler.

Docker paketleri artık CentOS 8 veya RHEL 8 paket depolarında mevcut değil, bu nedenle Docker CE paket deposunu etkinleştirmek için aşağıdaki dnf komutunu çalıştırınız. Resmi Docker CE deposunu eklemek ve etkinleştirmek için aşağıdaki komutu çalıştırınız.

dnf config-manager –add-repo=https://download.docker.com/linux/centos/docker-ce.repo

Docker-ce repo başarıyla yapılandırıldıktan sonra, kurulum için hangi docker sürümünün mevcut olduğunu doğrulamak için aşağıdaki komutu çalıştırın.

dnf list docker-ce

Şimdi docker’ın en son sürümünü yüklemek için dnf komutunun altında “–nobest” eklentisini kullanınız. Ne yazık ki, Docker’ın en son sürümü her zaman tüm depolarda mevcut değildir. Bunu çözmek ve en uygun ve kararlı sürüm sürümünü elde etmek için “–nobest” flag kullanacağız. Biz bu çalışmamızda –nobest seçeneğini kullanacağız. CentOS 8’in ihtiyaçlarımız için en uygun sürümü yüklemesine izin verecek.

dnf install docker-ce –nobest

Docker kurulumundan sonra, aşağıdaki systemctl komutlarını kullanarak hizmetini başlatın ve etkinleştirin

systemctl enable –now Docker

docker’ın başladığını aşağıdaki komutla doğrulayabiliriz.

systemctl status docker

Şimdi, version komutunu kullanarak kurulumun başarılı olup olmadığını ikinci kez kontrol edebiliriz. Yüklü docker sürümünü doğrulamak için aşağıdaki komutu çalıştırınız.

docker –version

Docker Kullanıcı Grubuna Kullanıcı Eklenmesi;

Docker kullanıcı grubuna “usermod” komutunu kullanarak bir kullanıcı eklenecektir. Ek olarak, kullanıcıyı ekledikten sonra “id root” komutunu kullandığımızda, bu bize kullanıcının artık docker grubuna dahil olup/olmadığını gösterecektir. Aşağıdaki komutla kullanıcınızı docker grubuna ekleyiniz.

sudo usermod -aG docker root

id root

Firewalld servisinin devre dışı bırakılması

Docker konteynerlerinin dahili olarak çalışmasına izin vermek için firewalld kalıcı olarak kapatacağız. Bu işlem için blog sistemde yer alan “Centos/RHEL 8’de Firewall Servisinin Devre dışı bırakılması veya kapatılması” makalesini incelemenizi tavsiye ederim.

systemctl stop firewalld

systemctl disable firewalld

Docker Kurulumunu Test Container imajı çekerek test etmek için;

Kurulumu test etmek için küçük bir centos docker container imajı indiriniz. Bu işlem için “docker pull centos” komutu kullanabilirsiniz.Sistem, centos imajın en son sürümünü internetten indirecektir.

İndirilen imajın mevcut olup/olmadığını kontrol etmek için “docker images“ komutu çalıştırınız.Sistem Docker imajlarınızı listeleyecektir.

indirilen centos imajını çalıştırmak için aşağıdaki komutu kullanabilirsiniz.

docker run -it –rm centos /bin/sh

Komut çıktısı ile, container’in başlatıldığını doğrulayabilirsiniz.

Docker Compose Kurulumu

Docker compose’un tek bir komut kullanarak, birden çok container’a bağlamak için kullanabilirsiniz. Başka bir deyişle, Docker Compose, birden çok container başlatmamız gerektiğinde ve bu containerların birbirine bağlı olduğunda daha da kullanışlıdır. LAMP/LEMP uygulamalarının (WordPress ve Joomla vb.) İçeriden konteynırların başlatılması gibi buna verilebilecek güzel örneklerden birisidir. Compose ile çoklu container mimarilerinin hazırlanması için kullanılan oldukça kullanılışlı bir uygulamadır.

Docker compose’u CentOS 8 / RHEL 8’e yüklemek için aşağıdaki adımları sırasıyla yapmanız gerekecektir.

Docker compose kurulmu öncesinde curl uygulamasının kurulu olması gerekiyor. Curl uygulamasını kurmak için aşağıdaki komutu çalıştırınız.

 dnf install curl -y

Curl uygulamasının kurulumu tamamlandıktan sonra; Docker Compose paketini GitHub’dan indirmek için;

curl -L “https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)” -o /usr/local/bin/docker-compose

Not:1.27.4” ‘ı, yüklemek istediğiniz docker compose sürümüyle değiştiriniz, ancak bu noktada bu, docker compose’un en güncel ve kararlı sürümüdür.

Docker-compose binary için yürütülebilir izni ayarlayınız. Çalıştırılabilir hale getirmek için “chmod” komutunu kullanarak dosyanın izinlerini ayarlayacağız.

chmod +x /usr/local/bin/docker-compose

Hangi sürümü kurduğumuzu kontrol etmek için aşağıdaki komutu çalıştırın.

docker-compose -v