01.06.2023

CentOS 7 üzerinde Docker Compose nasıl kurulur

Docker Compose, çoklu konteyner Docker uygulamalarını tanımlamak ve yapılandırmak için kullanılan bir komut satırı aracıdır. Başka bir deyişle, Docker Compose birden fazla konteyneri birbirine bağlamak ve bir uygulamayı tek bir dosyadan dağıtmak için kullanılır. Docker Compose aracı geliştirme, test, ortam hazırlama ve CI (Sürekli Entegrasyon) iş akışında kullanılabilir.

Serverspace, önceden yüklenmiş "Docker" uygulaması ile bir sunucu oluşturabilirsiniz.

Örneğin, bir WordPress web sitesini bir konteynerin içine yerleştirmeniz gerekiyor ve bunun için bir web sunucusu konteyneri (Apache/Nginx) ve bir veritabanı konteyneri (MySQL/MariaDB) gerekiyor. Docker Compose ile docker-compose dosyasına birden fazla konteyneri kolayca dahil edebilirsiniz. Uygulamanızı tamamen işlevsel hale getirmek için ihtiyaç duyduğunuz diğer yapılandırmaları da ekleyebilirsiniz.

Bu eğitimde Docker Compose'un Docker içeren mevcut bir ana bilgisayara yüklenmesi incelenmekte ve docker-compose komutu ile konteynerlerin dağıtılmasına değinilmektedir.

Docker ile ana bilgisayarın zaten kurulu ve çalışır durumda olduğu varsayılmaktadır. Docker Compose Tool'u yükleme adımlarına geçelim.

Docker Compose yükleme adımları

Bu komutları sunucunuzda çalıştırın:

sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
yum -y install java
/bin/bash

Ve şimdi aşağıda listelenen komutları aynı sırayla çalıştırın:

yum install epel-release -y
yum install python-pip -y
pip install docker-compose

Ve şimdi aşağıda listelenen komutları aynı sırayla çalıştırın:

yum install epel-release -y
yum install python-pip -y
pip install docker-compose

Not

Docker Compose'un kararlı çalışması için pip sürüm 6.0 veya daha yüksek paket yöneticisi kullanmanızı öneririz. Pip sürümü 6.0'dan düşükse, güncellemek için aşağıdaki komutu çalıştırın:

pip install --upgrade pip

Aşağıdaki komutu göndererek Docker sürümünü kontrol edin:

docker-compose --version

Sonuç:

docker-compose version 1.25.4, build 8d51620a

Docker Compose aracı ile kapsayıcıları dağıtma

Bir dizin oluşturun, ardından içinde bir compose dosyası oluşturun. Dosyaya "docker-compose.yml" veya "docker-compose.yaml" adını verin. Compose dosyasında uygulamalar için hizmetleri ve konteyner imajlarını tanımlayacaksınız.

Oluşturma dosyasını oluşturmaya başlamadan önce, WordPress ve MySQL kapsayıcılarının görüntülerini indirin:

docker pull wordpress
docker pull mysql
docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
wordpress latest d44c65e8e9a3 9 days ago 540MB
mysql latest 9b51d9275906 3 weeks ago 547MB

Ardından "siteonwordpress" adında bir dizin oluşturun:

mkdir siteonwordpress
cd siteonwordpress/

Listelenen içeriklerle bir docker-compose.yml dosyası oluşturun:

version: '3.0'
services:
frontserver:
image: wordpress
container_name: wp_cont
ports:
- 8080:80
links:
- databaseserver:mysql
environment:
WORDPRESS_DB_PASSWORD: erf6UiwkzjTH
databaseserver:
image: mysql:latest
container_name: wordpressdb_cont
environment:
MYSQL_ROOT_PASSWORD: erf6UiwkzjTH

Yukarıdaki compose dosyasında "frontserver" ve "databaseserver" adında iki servis tanımlanmıştır. Bunlar için konteyner imajları da belirtilmiştir. Ortam değişkenleri tanımlanmış ve MySQL root ve DB WordPress şifreleri de belirtilmiştir. YAML işaretlemesine göre girinti için boşluk kullanmanız gerektiğini unutmayın.

Uygulamanızı, bu durumda bir WordPress web sitesini, şu komutu kullanarak dağıtın:

docker-compose up

Not

Docker-compose dosyasının bulunduğu dizinden "docker-compose up" komutunu çalıştırmalısınız.

Yukarıdaki komut "wp_cont" ve "wordpressdb_cont" adlı iki konteyneri dağıtacaktır. Aşağıdaki URL'yi kullanarak WordPress web sitenize erişmeyi deneyin:

http://{dockerserver-ip}:8080

WordPress kurulumunu tamamlamak için ekrandaki talimatları izleyin. Bu, WordPress sitesinin docker-compose yardımcı programı kullanılarak konteynerlerin içine başarıyla yerleştirildiğini onaylar.

Şimdi "docker-compose" komutunun parametrelerine bakalım.

Uygulama için dağıtılan kapsayıcıların çıktısı

Çıktı almak için aşağıdaki komutu çalıştırın:

docker-compose ps
Name Command State Ports
--------------------------------------------------------------------------------
wordpressdb_cont docker-entrypoint.sh mysqld Up 3306/tcp, 33060/tcp
wp_cont docker-entrypoint.sh apach ... Up 0.0.0.0:8080->80/tcp

Konteynerleri ve hizmetlerini durdurma ve başlatma

"docker-compose up" komutunu çalıştırırken Ctrl+C tuşlarına basın veya aşağıdaki komutu çalıştırın:

docker-compose stop
Stopping wp_cont ... done
Stopping wordpressdb_cont ... done

Konteynerleri ve hizmetlerini çalıştırmak için "docker-compose start" komutunu çalıştırın:

docker-compose start
Starting databaseserver ... done
Starting frontserver ... done

Konteyner günlüklerine göz atın

Tüm konteyner günlüklerine veya belirli bir konteynerin günlüklerine göz atmak için "docker-compose logs {service-name}" komutunu çalıştırın:

docker-compose logs
docker-compose logs databaseserver

Oluşturulan ağ ile birlikte konteynerleri durdurun ve silin

"docker-compose down" komutu ile konteynerleri tek bir komutla durdurabilir ve silebilirsiniz:

docker-compose down
Stopping wp_cont ... done
Stopping wordpressdb_cont ... done
Removing wp_cont ... done
Removing wordpressdb_cont ... done
Removing network compose_default

Ek parametreleri "docker-compose -help" komutunu çalıştırarak yardım bölümünde bulabilirsiniz.