Meydan okuma - Compose
- Docker & Kubernetes kursu
- Başlangıç
- Ders 81/82
- 5 dk
Web ve veritabanını compose ile birleştirirsin.
Meydan okuma: Compose yığını
WordPress + MySQL, Compose'un klasik örneğidir. Bu meydan okumada iki servisli bir yığını tek dosyada tanımlayacaksın: veritabanı adlandırılmış bir volume'de kalıcı olacak, WordPress veritabanına servis adıyla bağlanacak ve yalnızca WordPress port yayınlayacak.
services:
db:
image: mysql:8
environment:
MYSQL_ROOT_PASSWORD: gizli
MYSQL_DATABASE: wp
volumes:
- dbveri:/var/lib/mysql
wordpress:
image: wordpress:6
ports:
- "8080:80"
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_PASSWORD: gizli
depends_on:
- db
volumes:
dbveri:Uygulama compose.yaml
Karttaki compose.yaml'ı yaz: db servisi (mysql:8, MYSQL_ROOT_PASSWORD: gizli, dbveri:/var/lib/mysql); wordpress servisi (wordpress:6, "8080:80", WORDPRESS_DB_HOST: db, depends_on altında db); üst düzey volumes altında dbveri:.
Başlangıç kodu
# compose.yaml
# buraya yazÖrnek çözüm
# compose.yaml
services:
db:
image: mysql:8
environment:
MYSQL_ROOT_PASSWORD: gizli
volumes:
- dbveri:/var/lib/mysql
wordpress:
image: wordpress:6
ports:
- "8080:80"
environment:
WORDPRESS_DB_HOST: db
depends_on:
- db
volumes:
dbveri:Beklenen çıktı
[+] Running 3/3 ✔ Volume "proje_dbveri" Created ✔ Container proje-db-1 Started ✔ Container proje-wordpress-1 Started
Uygulama Yığını yönet
Üç komut yaz: yığını arka planda başlat; servislerin durumunu göster; wordpress servisinin log'larını canlı takip et.
Başlangıç kodu
# buraya yazÖrnek çözüm
docker compose up -d
docker compose ps
docker compose logs -f wordpressBeklenen çıktı
[+] Running 2/2 ✔ Container proje-db-1 Started ✔ Container proje-wordpress-1 Started NAME SERVICE STATUS PORTS proje-db-1 db Up 5 seconds 3306/tcp, 33060/tcp proje-wordpress-1 wordpress Up 4 seconds 0.0.0.0:8080->80/tcp
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 WORDPRESS_DB_HOST neden db değerini alır?
- db bir IP adresidir
- MySQL'in varsayılan adıdır
- Gelişigüzel seçilmiştir
- Compose ağında servis adı DNS adıdır Doğru cevap
Açıklama: Container'lar ortak varsayılan ağda birbirini adla bulur.
2 Yığını arka planda başlat.
docker compose up ____
docker compose up -d
Açıklama: -d (detached) terminali bırakır.
3 Eşleştir.
| Kavram | Anlamı |
|---|---|
dbveri |
Kalıcı MySQL verisi |
8080:80 |
Yalnızca WordPress yayını |
depends_on |
Başlatma sırası |
WORDPRESS_DB_HOST: db |
Servis adıyla bağlantı |