CodeBlanks Logo Icon CodeBlanks

Port kavramı

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:8080

0.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

terminal
# buraya yaz

Örnek çözüm

terminal
docker run -d --name web -p 8080:80 nginx
docker port web

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

Soru
docker ____ web
Cevap
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

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