Veri kalıcılığı
- Docker & Kubernetes kursu
- Başlangıç
- Ders 49/82
- 4 dk
Container silinse bile verinin kalıcı olmasını öğrenirsin.
Veri kalıcılığı
Container'ın yazılabilir katmanı container ile birlikte silinir. Bir veritabanı container'ını güncellemek için silip yeniden oluşturduğunda tüm veriler gider. Kalıcı veri için Docker iki yol sunar:
- Volume: Docker'ın yönettiği depolama (
/var/lib/docker/volumes). - Bind mount: ana makinedeki belirli bir klasörün container'a bağlanması.
docker run -d --name db -v pgdata:/var/lib/postgresql/data postgres:16Container'dan bağımsız yaşam
Volume, container silinince silinmez. Yeni bir container aynı volume'ü bağlayınca veriye kaldığı yerden devam eder. Bu sayede image güncellemesi "sil ve yeni sürümle yeniden başlat" kadar basit olur:
docker rm -f db
docker run -d --name db -v pgdata:/var/lib/postgresql/data postgres:16.4
# tablolar ve kayıtlar yerindeUygulama Kalıcı veritabanı
postgres:16'dan db adlı container'ı arka planda POSTGRES_PASSWORD=gizli ile başlat; pgdata volume'ünü /var/lib/postgresql/data dizinine bağla.
Başlangıç kodu
# buraya yazBeklenen çıktı
3b4c5d6e7f80
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Bir veritabanı container'ı volume olmadan silinip yeniden oluşturulursa ne olur?
- Veriler otomatik yedeklenir
- Hiçbir şey değişmez
- Tüm veriler kaybolur Doğru cevap
- Veriler image'a kaydedilir
Açıklama: Veriler silinen container'ın yazılabilir katmanındaydı.
2 pgdata volume'ünü veri dizinine bağla.
docker run -d ____ pgdata:/var/lib/postgresql/data postgres:16
docker run -d -v pgdata:/var/lib/postgresql/data postgres:16
Açıklama: -v ad:yol volume bağlar.
3 Eşleştir.
| Kavram | Anlamı |
|---|---|
yazılabilir katman |
Container ile silinir |
volume |
Docker yönetir, kalıcı |
bind mount |
Ana makine klasörü |
/var/lib/docker/volumes |
Volume'lerin yeri |