CodeBlanks Logo Icon CodeBlanks

IP bağlama

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

Dikkat: 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 web

Uygulama 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

terminal
# buraya yaz

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

Soru
docker run -d -p ____:6379:6379 redis
Cevap
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

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