CodeBlanks Logo Icon CodeBlanks

Meydan okuma - Compose

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

terminal
# compose.yaml
# buraya yaz

Örnek çözüm

terminal
# 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

terminal
# buraya yaz

Örnek çözüm

terminal
docker compose up -d
docker compose ps
docker compose logs -f wordpress

Beklenen çı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.

Soru
docker compose up ____
Cevap
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ı

Başlangıç bölümündeki tüm dersler