4.1 Port yayınlama əsas anlayışları
Portların dərc edilməsi Docker-də konteynerlərdə işləyən xidmətlərin xarici şəbəkədən və ya hostdan əlçatan olmasını təmin edir. Bu, çox-konteynerli tətbiqlərin konfiqurasiyası üçün vacib bir hissədir, çünki bu, veb serverlər, verilənlər bazaları və digər şəbəkə tətbiqləri kimi xidmətlərlə qarşılıqlı əlaqəni mümkün edir. Bu mövzuda konteyner portlarını necə dərc etməyi və xidmətlərə necə girişi konfiqurasiya etməyi müzakirə edəcəyik.
Port dərc etmənin əsas anlayışları
- Portların uyğunlaşdırılması (Mapping): Host portunun konteyner portuna uyğun gəlməsi.
-
-p/--publish
parametri: Konteynerin işə salınmasında port uyğunluğunu göstirmək üçün istifadə olunur. -
-P/--publish-all
parametri: Konteynerin bütün ixrac olunan portları üçün avtomatik olaraq host portları təyin edir.
-p
parametrindən istifadə nümunəsi
Konteyneri işə salarkən, host portunu konteyner portuna bağlamaq üçün -p
seçimini istifadə edə bilərsiniz. Komandanın formatı:
docker run -d -p <host_port>:<container_port> <image>
Nümunə 1: Nginx veb serverinin portunun dərc edilməsi
Nginx ilə konteyner işə salıb, konteynerin 80 portunu hostun 8080 portunda dərc edəcəyik.
İndi Nginx http://localhost:8080 ünvanında əlçatan olacaq.
docker run -d -p 8080:80 --name mynginx nginx
Nümunə 2: Bir neçə portun dərc edilməsi
Bir neçə portu dərc edə bilərsiniz, bir neçə -p
seçimindən istifadə edərək.
Bu nümunədə, Nginx HTTP üzərindən 8080 portunda və HTTPS üzərindən 8443 portunda əlçatan olacaq.
docker run -d -p 8080:80 -p 8443:443 --name mynginx nginx
-P
parametrindən istifadə nümunəsi
-P
parametri bütün Dockerfile və ya konteyner parametrlərində qeyd edilmiş portları avtomatik olaraq təsadüfi host portlarına bağlayır.
Nümunə:
docker run -d -P --name mynginx nginx
Hansı portların təyin edildiyini bilmək üçün docker port
komandasından istifadə edin:
docker port mynginx
Nəticə təxminən belə olacaq:
80/tcp -> 0.0.0.0:32768
443/tcp -> 0.0.0.0:32769
4.2 Docker Compose-da portların paylaşılması
Docker Compose-da portları təyin etmək üçün ports
direktivindən docker-compose.yml
faylında istifadə elə.
docker-compose.yml
faylı üçün nümunə
version: '3.8'
services:
web:
image: nginx:latest
ports:
- "8080:80"
- "8443:443"
Docker Compose-u işə sal:
docker compose up -d
İndi Nginx http://localhost:8080 və https://localhost:8443 ünvanlarında əlçatan olacaq.
4.3 Portların yayımı üçün əlavə parametrlər
1. IP ünvan məhdudiyyəti
Hostun IP ünvanını müəyyən edərək konteyner portuna çıxışı məhdudlaşdıra bilərsiniz.
Nümunə:
Bu nümunədə Nginx yalnız lokal hostdan http://127.0.0.1:8080 ünvanı ilə əlçatan olacaq.
docker run -d -p 127.0.0.1:8080:80 --name mynginx nginx
2. Port diapazonundan istifadə
Yayım üçün port diapazonu göstərə bilərsiniz.
Nümunə:
docker run -d -p 8080-8081:80-81 --name mynginx nginx
Təcrübi məsləhətlər:
- Lazımlı portların yayımı: Yalnız xidmətlərə giriş üçün həqiqətən lazım olan portları yayımlayın ki, potensial zəiflikləri azaldasınız.
- Firewall istifadə: Yayılmış portlara girişin yalnız etibarlı IP ünvanlarından icazə verilməsi üçün firewall konfiqurasiya edin.
- Monitorinq və loglama: Yayılmış portlara olan çıxışı izləmək və şübhəli fəaliyyəti aşkar etmək üçün monitorinq və loglama alətlərindən istifadə edin.
GO TO FULL VERSION