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/bashVe ş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 pipAşağıdaki komutu göndererek Docker sürümünü kontrol edin:
docker-compose --version Sonuç:
docker-compose version 1.25.4, build 8d51620aDocker 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 wordpressdocker pull mysqldocker image lsREPOSITORY TAG IMAGE ID CREATED SIZE
wordpress latest d44c65e8e9a3 9 days ago 540MB
mysql latest 9b51d9275906 3 weeks ago 547MBArdından "siteonwordpress" adında bir dizin oluşturun:
mkdir siteonwordpresscd 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: erf6UiwkzjTHYukarı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 upNot
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}:8080WordPress 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 psName 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/tcpKonteynerleri 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 stopStopping wp_cont ... done
Stopping wordpressdb_cont ... doneKonteynerleri ve hizmetlerini çalıştırmak için "docker-compose start" komutunu çalıştırın:
docker-compose startStarting databaseserver ... done
Starting frontserver ... doneKonteyner 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 logsdocker-compose logs databaseserverOluşturulan ağ ile birlikte konteynerleri durdurun ve silin
"docker-compose down" komutu ile konteynerleri tek bir komutla durdurabilir ve silebilirsiniz:
docker-compose downStopping wp_cont ... done
Stopping wordpressdb_cont ... done
Removing wp_cont ... done
Removing wordpressdb_cont ... done
Removing network compose_defaultEk parametreleri "docker-compose -help" komutunu çalıştırarak yardım bölümünde bulabilirsiniz.