
Docker artıq qurulubsa, növbəti praktik addımlardan biri Docker Compose istifadə etməkdir. Xüsusilə birdən çox servis işlədən layihələrdə, məsələn web app + database + cache ssenarisində Compose idarəni xeyli sadələşdirir. Tək-tək docker run əmrləri əvəzinə bütün stack-i bir YAML faylı ilə idarə etmək olur.
Bu məqalədə Ubuntu 24.04-də Docker Compose plugin-in necə qurulduğunu, onun düzgün yoxlanmasını və sadə bir compose.yaml ilə ilk stack-in necə başladıldığını addım-addım göstərəcəyəm.
Docker Compose nədir?
Docker Compose bir neçə container-dən ibarət tətbiqləri tək yerdən idarə etməyə imkan verir. Siz servis konfiqurasiyasını bir compose.yaml faylında saxlayırsınız, sonra bir neçə əmr ilə bütün stack-i qaldırır, söndürür və yenidən qurursunuz.
- birdən çox servisi birlikdə idarə edir
- port mapping, environment variable və volume-ləri bir yerdə saxlayır
- local development və test üçün çox rahatdır
- sadə deploy ssenarilərində də praktikdir
Bu tutorial kim üçündür?
- Ubuntu 24.04 istifadəçiləri
- Docker artıq quraşdırılmış sistemlər
- bir app və əlavə servis, məsələn Redis və ya database birlikdə işlətmək istəyənlər
Başlamazdan əvvəl nə hazır olmalıdır?
- Ubuntu 24.04
- Docker Engine quraşdırılmış olmalıdır
- sudo səlahiyyəti
Əgər Docker hələ qurulmayıbsa, əvvəl onu qurmaq daha doğrudur. Compose plugin Docker-in üstünə gələn əlavə komponentdir.
Addım 1: Docker Compose plugin quraşdırın
Əgər siz Docker-i rəsmi repository üzərindən quraşdırmısınızsa, Compose plugin ayrıca çox rahat qurulur:
sudo apt-get update
sudo apt-get install docker-compose-plugin -y
Bu, Ubuntu və Debian üçün rəsmi tövsiyə olunan yoldur.
Addım 2: Quraşdırmanı yoxlayın
İndi Compose-un tanındığını yoxlayın:
docker compose version
Burada versiya cavabı gəlirsə, plugin düzgün quraşdırılıb.
Vacib qeyd: müasir yanaşma docker compose şəklindədir. Köhnə docker-compose binarı ayrıca və fərqli ola bilər.
Addım 3: Sadə test layihəsi yaradın
Test üçün yeni qovluq açın:
mkdir compose-demo
cd compose-demo
Sonra sadə bir compose.yaml yaradın:
services:
web:
image: nginx:alpine
ports:
- "8080:80"
redis:
image: redis:alpine
Bu konfiqurasiya iki servis qaldırır:
webüçün Nginxredisüçün Redis image
Addım 4: Stack-i başladın
docker compose up -d
Bu əmrlə container-lər background-da qalxacaq.
Sonra statusa baxın:
docker compose ps
Brauzerdə və ya curl ilə yoxlayın:
curl http://localhost:8080
Nginx default cavabı gəlirsə, stack işləyir.
Addım 5: Stack-i dayandırın
docker compose down
Bu əmrlə servis-lər bağlanır və container-lər silinir. Əgər volume istifadə etmisinizsə, onlar ayrıca qala bilər.
Bir az daha praktik compose.yaml nümunəsi
Daha real development ssenarisində environment variable istifadə etmək daha düzgündür:
services:
app:
image: nginx:alpine
ports:
- "${APP_PORT}:80"
redis:
image: redis:alpine
Sonra bir .env faylı yaradırsınız:
APP_PORT=8080
Compose bu dəyərləri avtomatik oxuya bilir.
Health check niyə vacibdir?
Əgər bir servis digərindən asılıdırsa, sadəcə eyni anda qalxmaları kifayət etməyə bilər. Məsələn web app Redis hazır olmadan başlasa, crash edə bilər. Buna görə Compose-da health check və depends_on daha praktik yanaşmadır.
Nümunə:
services:
web:
build: .
depends_on:
redis:
condition: service_healthy
redis:
image: redis:alpine
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 5s
timeout: 3s
retries: 5
start_period: 10s
Bu yanaşma lokal development və test mühitində daha stabil nəticə verir.
Ən çox rast gəlinən problemlər
1. `docker compose` tanınmır
Plugin quraşdırılmayıb və ya Docker rəsmi repo ilə qurulmayıb. docker-compose-plugin paketini yenidən yoxlayın.
2. `docker-compose` işləyir, amma `docker compose` yox
Bu, köhnə binar ilə yeni plugin modelinin qarışması ola bilər. Praktik olaraq yeni formatdan istifadə etmək daha düzgündür.
3. Port conflict olur
Host-da eyni port artıq istifadə olunursa, məsələn 8080, compose qalxmaya bilər. Bu halda port mapping dəyişin.
4. Servis qalxır, amma app işləmir
Bu, çox vaxt image, environment variable, dependency və ya health check problemi olur. docker compose logs ilə baxın:
docker compose logs
Təhlükəsizlik və praktik tövsiyələr
- production-da compose istifadə edirsinizsə, secrets-i düz idarə edin
.envfaylını ehtiyatsız şəkildə Git-ə göndərməyin- named volume-lər və log ölçüsü barədə əvvəlcədən düşünün
- internetə açıq port mapping-ləri diqqətlə seçin
Nəticə
Ubuntu 24.04-də Docker Compose plugin quraşdırmaq çox sürətli, amma çox faydalı addımdır. Xüsusilə bir neçə servis işlədən layihələrdə Compose həm development, həm də sadə deploy ssenarilərində böyük rahatlıq yaradır. Ən yaxşı başlanğıc yanaşması budur: əvvəl plugin-i rəsmi paketlə quraşdırın, docker compose version ilə yoxlayın, sonra kiçik bir compose.yaml ilə ilk stack-i işə salın.
Növbəti mərhələdə istəsəniz Docker Compose ilə Nginx reverse proxy, app + database stack və ya health check-lərlə daha dayanıqlı lokal mühit qura bilərsiniz.