DevOpsDocker

Docker Compose Kurulumu

Translate This Page:

Select your language: 

Docker Compose Nedir?

C:\Users\bimhmr09\Desktop\Makaleler\DevOps\4-Docker Compose\compose.jpg

Docker Compose, çok kapsayıcılı Docker uygulamalarını tanımlayan ve çalıştıran bir araçtır. Docker Compose ile uygulamanızın servislerini tek bir YAML dosyasında tanımlayıp yapılandırır, ardından tek bir komut ile tüm uygulama servislerini oluşturup başlatabilirsiniz.

Geliştiriciler, üretim, hazırlık, geliştirme, test vb. aşamalardan konuşlandırıldığı tüm ortamlarda çalıştığı için Compose’u kullanmayı tercih eder. Ek olarak, Compose zengin özelliklere sahiptir:

  • Compose ile, uygulamaları tek bir ana bilgisayardan birden çok yalıtılmış ortamda çalıştırabilirsiniz.
  • Compose, uygulama hizmetleri tarafından kullanılan tüm birimleri korur.
  • docker-compose ile yalnızca durumunu değiştiren containerları yeniden oluşturursunuz. Bu, geliştiricilerin ortamda çok hızlı değişiklik yapmasına olanak tanır.
  • Geliştirici, kompozisyonlarını farklı ortamlar veya kullanıcılar için özelleştirmek üzere YAML dosyasındaki değişkenleri kullanabilir.

Docker Compose kullanım durumları

Docker Compose’un birkaç kullanım durumu vardır bunlar ;

  • Geliştirme ortamları – docker-compose komutu, etkileşim kurulacak ortamlar oluşturur. Docker YAML dosyası, uygulama hizmetlerini ve bağımlılıklarını belgeler ve yapılandırır. docker-compose komutu, her bağımlılık için bir veya daha fazla kapsayıcı başlatır.
  • Otomatikleştirilmiş test ortamları – Docker compose ile yalıtılmış test ortamlarını kolayca oluşturup yok edebilirsiniz.
  • Tek ana bilgisayar dağıtımları – Tek bir ana bilgisayarda, tek bir YAML dosyası kullanarak birden çok dağıtım çalıştırabilirsiniz.

Docker Compose, üç ana süreci takip eder:

  1. Uygulama ortamını her yerde üretilecek şekilde bir Dockerfile üzerinde tanımlayın.
  2. Uygulama hizmetlerini, farklı ortamlarda birlikte çalışacak bir docker-compose.yml dosyasında tanımlayın.
  3. docker-compose up & docker-compose komutunu kullanarak uygulamanızı başlatın ve çalıştırın.

Docker Compose kurulumu

Yukarıdaki giriş Docker Compose’un neyle ilgili olduğu hakkında genel bir fikir vermek için yeterlidir. Docker Compose’u Ubuntu 22.04’ünüze yüklemek için sisteminizde Docker Engine’in kurulu olduğundan(bir önceli makalede detaylıca anlatılmıştır.) ve bir sudo(root) hesabına erişiminizin olduğundan emin olun. Ayrıca, istikrarlı bir internet bağlantınız olduğundan emin olun.

#İşleme başlamadan önce, sistemimizi güncelliyoruz.
sudo apt update -y && sudo apt upgrade -y

Sistemimde yüklü olan Docker sürümünü doğrulayarak başlıyorum.

$ docker --version
Docker version 23.0.1, build a5ee5b1

Aşağıdaki komutları çalıştırıyorum

$ARCH=$(uname -m) && [[ "${ARCH}" == "armv7l" ]] && ARCH="armv7"
$sudo mkdir -p /usr/local/lib/docker/cli-plugins

Aşağıdaki komutla docker compose lates (son sürümünü) Linux makineme yüklüyorum.

sudo curl -SL "https://github.com/docker/compose/releases/latest/download/docker-compose-linux-${ARCH}" -o /usr/local/lib/docker/cli-plugins/docker-compose

Aşağıdaki komutları çalıştırarak gerekli dizine okuma yazma izinlerini tanımlıyorum.

sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose

Aşağıdaki komutla compose paket kurulumunu başlatıyorum.

apt install docker-compose

Docker Compose sürümünü doğrulayın

Kurulu sürümü kontrol etmek için aşağıdaki komutu verin.

$ docker compose version
Docker Compose version v2.16.0

Docker Compose Kurulumu 2

Docker Compose’un en son sürümünü başarılı bir şekilde yükledik.

Docker Compose kurulumunu test edin

Test amacıyla, bir metin düzenleyici kullanarak bir test docker-compose YAML dosyası oluşturacağım.

$ vim docker-compose.yml
## Add the contents below ##
version: '3.7'
services:
web:
image: nginx:alpine
ports:
- "8080:80"
links:
- php
php:
image: php:8-fpm

Docker Compose Kurulumu 3

Compose “docker-compose up –d” komutunu çalıştırdığımda tüm imajları indirip tüm servislerin otomatik olarak kurulduğunu göreceksiniz.

$ docker-compose up –d
Creating network "serdar_default" with the default driver
Pulling php (php:8-fpm)...
8-fpm: Pulling from library/php
3f9582a2cbe7: Pull complete
0b95dc92ce55: Pull complete
3630ff9f8131: Pull complete
49efbc577363: Pull complete
689268bf5fec: Pull complete
ae8237101120: Pull complete
ee60935c79a8: Pull complete
3185df77a123: Pull complete
73005123d9a4: Pull complete
e81ce3e25aa1: Pull complete
Digest: sha256:98bd33db3ba6b72f59538edc0f58d713af9fd3ff65cde25c645a1138b2692e16
Status: Downloaded newer image for php:8-fpm
Pulling web (nginx:alpine)...
alpine: Pulling from library/nginx
63b65145d645: Pull complete
8c7e1fd96380: Pull complete
86c5246c96db: Pull complete
b874033c43fb: Pull complete
dbe1551bd73f: Pull complete
0d4f6b3f3de6: Pull complete
2a41f256c40f: Pull complete
Digest: sha256:207332a7d1d17b884b5a0e94bcf7c0f67f1a518b9bf8da6c2ea72c83eec889b8
Status: Downloaded newer image for nginx:alpine
Creating serdar_php_1 ... done
Creating serdar_web_1 ... done

Çalışan composeları görüntüleme

“docker-compose ps” komutuyla 2 adet container otomatik oluşturulup tüm ayarları yapılandırılarak karşımıza geldi.

root@docker01:/home/serdar# docker-compose ps
Name Command State Ports
--------------------------------------------------------------------------------------------

serdar_php_1 docker-php-entrypoint php-fpm Up 9000/tcp
serdar_web_1 /docker-entrypoint.sh ngin ... Up 0.0.0.0:8080->80/tcp,:::8080->80/tcp

Başlıca compose komutları

Compose altındaki tüm containerları durdurur

$ docker-compose stop

Compose altındaki tüm containerları başlatır

$docker-compose start

Compose altındaki tüm containerları duraklatır

$docker-compose pause

Compose altındaki tüm containerları duraklamayı kaldırır play eder.

$docker-compose unpause

Compose oluşturmak için kullanılır.

$docker-compose up

Compose ile oluşturulan tüm containerları ve compose neslerini siler.

$ docker-compose down

Daha fazlası için lütfen Resmi Docker Composer Belgelerini ziyaret edin . Bugünkü rehberimizin sonuna geldik. İşinize yaradığına inanıyorum. Docker Compose, son zamanlarda geliştiricilerin tek bir ana bilgisayardan birden çok uygulamayı dağıtabilmesi nedeniyle oldukça popülerlik kazandı. Tek bir docker-compose.yml dosyasıyla, yalıtılmış ana bilgisayarlarda çalışacak birden fazla servis tanımlayabilmeleri gerçeğiyle birleştiğinde büyük bir artı.

Serdar Bayram

Bu yazı blog üzerinde Serdar Bayram tarafından hazırlanıp paylaşılmıştır. 2009 yılında açılan blogum kısa zaman içerisinde paylasımları ile dikkat cekip büyük bir izleyici kitlesine sahip olmuştur.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu