Volume ve network
- Docker & Kubernetes kursu
- Başlangıç
- Ders 64/82
- 4 dk
Volume ve network tanımlarını compose dosyasına eklersin.
Volume ve network
Varsayılan olarak Compose tüm servisleri tek bir proje_default ağına koyar. Katmanları ayırmak için özel ağlar tanımlanır: yalnızca API hem dış hem iç ağdadır; veritabanı dışarıdan erişilemeyen bir ağda kalır:
services:
web:
image: nginx:alpine
networks: [on]
api:
build: .
networks: [on, arka]
db:
image: postgres:16
networks: [arka]
networks:
on:
arka:
internal: true # dışarıya çıkışı da yokBind mount ve salt okunur ayar
Servislere ayar dosyası bağlamak için kısa sözdiziminde göreli yol kullanılır; yol compose dosyasının klasörüne göredir:
web:
image: nginx:alpine
volumes:
- ./nginx.conf:/etc/nginx/conf.d/default.conf:ro
- statik:/usr/share/nginx/html
volumes:
statik:docker compose down volume'leri silmez; down -v onları da siler (veri kaybı!).
Uygulama Katmanlı ağlar
Bir compose.yaml yaz: api servisi build: . ile oluşsun ve on ile arka ağlarında olsun; db servisi postgres:16 image'ını kullansın ve yalnızca arka ağında olsun. Üst düzey networks: altında on: ve internal: true olan arka: ağlarını tanımla.
Başlangıç kodu
# compose.yaml
# buraya yazÖrnek çözüm
# compose.yaml
services:
api:
build: .
networks:
- on
- arka
db:
image: postgres:16
networks:
- arka
networks:
on:
arka:
internal: trueBeklenen çıktı
[+] Running 4/4 ✔ Network proje_on Created ✔ Network proje_arka Created ✔ Container proje-db-1 Started ✔ Container proje-api-1 Started
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Yukarıdaki dosyada web servisi db servisine erişebilir mi?
- Evet, her zaman
- Yalnızca port yayınlanırsa
- Yalnızca IP ile
- Hayır, ortak bir ağları yok Doğru cevap
Açıklama: Container'lar yalnızca ortak oldukları ağlar üzerinden konuşur.
2 Ağı dış dünyaya kapat.
networks:
arka:
____: true
networks:
arka:
internal: true
Açıklama: internal ağdaki container'lar dışarıya çıkamaz.
3 Eşleştir.
| Kavram | Anlamı |
|---|---|
proje_default |
Varsayılan ağ |
internal: true |
Dışarıya kapalı ağ |
./nginx.conf:...:ro |
Salt okunur ayar |
down -v |
Volume'leri de siler |