Compose tasarımı
- Docker & Kubernetes kursu
- Başlangıç
- Ders 61/82
- 4 dk
docker-compose.yml dosyasının yapısını tasarlarsın.
Proje: Compose ile çok servisli uygulama
Gerçek uygulamalar tek container'dan oluşmaz: bir web uygulaması, bir veritabanı, belki bir önbellek. Her birini uzun docker run komutlarıyla başlatmak zahmetli ve hataya açıktır. Docker Compose, tüm servisleri tek bir compose.yaml dosyasında tanımlar ve tek komutla yönetir:
docker compose up -d # tüm servisleri oluştur ve başlat
docker compose ps # durumlarını göster
docker compose down # durdur ve kaldırBu projede adım adım bir Python API + PostgreSQL + Redis yığını kuracaksın.
compose.yaml'ın iskeleti
Dosyanın üst düzey anahtarları services (container'lar), volumes (adlandırılmış volume'ler) ve networks'tür (özel ağlar). YAML'da girinti anlam taşır; sekme değil boşluk kullanılır:
services:
web:
image: nginx:alpine
ports:
- "8080:80"Eski docker-compose (tireli, v1) yerine artık Docker'a gömülü docker compose (v2) kullanılır; üstteki version: satırı da gerekmez.
Uygulama İlk compose dosyası
Bir compose.yaml yaz: web servisi nginx:alpine image'ını kullansın ve ana makinenin 8080 portunu container'ın 80 portuna eşlesin.
Başlangıç kodu
# compose.yaml
# buraya yazÖrnek çözüm
# compose.yaml
services:
web:
image: nginx:alpine
ports:
- "8080:80"Beklenen çıktı
[+] Running 2/2 ✔ Network proje_default Created ✔ Container proje-web-1 Started
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Compose'un docker run komutlarına göre temel avantajı nedir?
- Image gerektirmemesi
- Yalnızca üretimde çalışması
- Tüm servislerin ayarı tek bir dosyada ve sürüm kontrolünde durur Doğru cevap
- Daha hızlı container'lar
Açıklama: Dosyayı alan herkes aynı yığını docker compose up ile kurar.
2 Servisleri tanımlayan üst düzey anahtarı yaz.
____:
web:
image: nginx:alpine
services:
web:
image: nginx:alpine
Açıklama: Her servis bir ya da daha çok container'a karşılık gelir.
3 Eşleştir.
| Kavram | Anlamı |
|---|---|
services |
Container tanımları |
volumes |
Adlandırılmış volume'ler |
docker compose up -d |
Yığını başlat |
docker compose down |
Yığını kaldır |