Port kavramı
- Docker & Kubernetes kursu
- Başlangıç
- Ders 43/82
- 4 dk
Host ve container portları arasındaki ilişkiyi öğrenirsin.
Port kavramı
Her container kendi ağ yığınına sahiptir. Container içinde 80 portunu dinleyen nginx, ana makinenin 80 portunu otomatik olarak açmaz; dışarıdan erişilemez. Erişim için container portu ana makinedeki bir porta yayınlanır (port mapping):
ana makine:8080 ──► container:80
docker run -d -p 8080:80 nginx
curl http://localhost:8080 # nginx karşılama sayfasıYayınlanan portları görmek
docker ps'in PORTS sütunu ve docker port komutu yayınlanan eşlemeleri gösterir:
$ docker ps --format '{{.Names}} {{.Ports}}'
web 0.0.0.0:8080->80/tcp
$ docker port web
80/tcp -> 0.0.0.0:80800.0.0.0, ana makinenin tüm ağ arayüzlerinde dinlendiğini gösterir: aynı ağdaki başka bir bilgisayar da erişebilir.
Uygulama Bir web sunucusunu yayınla
İki komut yaz: nginx'ten web adlı container'ı arka planda, ana makinenin 8080 portunu container'ın 80 portuna eşleyerek başlat; ardından onun port eşlemelerini göster.
Başlangıç kodu
# buraya yazÖrnek çözüm
docker run -d --name web -p 8080:80 nginx
docker port webBeklenen çıktı
5a6b7c8d9e0f 80/tcp -> 0.0.0.0:8080
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Dockerfile'da EXPOSE 80 yazmak dışarıdan erişimi sağlar mı?
- Yalnızca Linux'ta
- Yalnızca 80 portu için
- Hayır; yalnızca belgeler, yayınlamak için -p gerekir Doğru cevap
- Evet, her zaman
Açıklama: EXPOSE, -P bayrağının hangi portları yayınlayacağını da söyler.
2 Container'ın port eşlemelerini göster.
docker ____ web
docker port web
Açıklama: docker port container eşlemeleri listeler.
3 Eşleştir.
| Kavram | Anlamı |
|---|---|
container portu |
Uygulamanın dinlediği |
ana makine portu |
Dışarıdan erişilen |
EXPOSE |
Belge |
0.0.0.0 |
Tüm arayüzler |