IP bağlama
- Docker & Kubernetes kursu
- Başlangıç
- Ders 47/82
- 4 dk
Belirli bir IP'ye port bağlamayı öğrenirsin.
IP bağlama
Varsayılan olarak -p 5432:5432 tüm arayüzlerde (0.0.0.0) dinler; sunucuda bu, veritabanını internete açmak demektir. Yalnızca aynı makineden erişim için IP 127.0.0.1'e bağlanır:
docker run -d -p 127.0.0.1:5432:5432 -e POSTGRES_PASSWORD=gizli postgres:16
$ docker port <id>
5432/tcp -> 127.0.0.1:5432Dikkat: Docker, port yayınlamak için güvenlik duvarı kurallarını kendisi ekler; ufw gibi araçlar bu portları her zaman engellemez.
Hiç yayınlamamak
En güvenli seçenek çoğu zaman portu hiç yayınlamamaktır. Aynı Docker ağındaki container'lar birbirine port yayınlamadan erişebilir (ağ grubunda göreceksin). Yalnızca dışarıdan gerçekten erişilmesi gereken servis (ör. ters vekil) yayınlanır:
docker network create arka
docker run -d --name db --network arka postgres:16 # yayın yok
docker run -d --name web --network arka -p 80:80 nginx # yalnızca webUygulama Güvenli Redis
redis:7'den cache adlı container'ı arka planda başlat; 6379 portunu yalnızca ana makinenin 127.0.0.1 adresinde aynı numarayla yayınla.
Başlangıç kodu
# buraya yazBeklenen çıktı
f6a7b8c9d0e1
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Bir sunucuda veritabanını yalnızca o sunucudaki uygulamalara açmak için hangisi kullanılır?
- -p 0.0.0.0:5432:5432
- -P
- -p 127.0.0.1:5432:5432 Doğru cevap
- -p 5432:5432
Açıklama: 127.0.0.1 yalnızca yerel bağlantıları kabul eder.
2 Portu yalnızca yerel arayüze bağla.
docker run -d -p ____:6379:6379 redis
docker run -d -p 127.0.0.1:6379:6379 redis
Açıklama: 127.0.0.1 yerel döngü arayüzüdür.
3 Eşleştir.
| Kavram | Anlamı |
|---|---|
0.0.0.0 |
Tüm arayüzler |
127.0.0.1 |
Yalnızca yerel |
yayın yok |
Yalnızca ağ içinden |
ufw |
Docker kurallarını her zaman engellemez |