7.1 Portların yönləndirilmə əsasları
Portların yönləndirilməsi — bu, Docker-də əsas anlayışlardan biridir ki, konteyner daxilində işləyən servislərin xarici aləmdən əlçatan olmasını təmin edir. Bu funksiya, tətbiqlərin yerləşdirilməsi prosesində vacib rol oynayır, veb-serverlərə, verilənlər bazasına və konteyner daxilində işləyən digər servislərə hədəf maşından və ya digər şəbəkələrdən çıxışı təmin edir.
Siz Docker vasitəsilə konteyner işə saldığınız zaman, o, izolyasiya olunmuş şəbəkədə çalışır. Konteyner daxilindəki servislərə giriş üçün Docker portları konteynerdən hədəf maşına yönləndirilməsinə imkan verir.
Portların yönləndirilməsi -p
və ya --publish
parametrlərindən istifadə edərək docker run
komandası vasitəsilə həyata keçirilir.
Sintaksis
docker run -p [HOST_PORT ]:[CONTAINER_PORT] [OPTIONS] IMAGE [COMMAND] [ARG...]
Harada:
- HOST_PORT: hədəf maşında trafik yönləndiriləcək port.
- CONTAINER_PORT: konteyner daxilində trafik yönləndiriləcək port.
- OPTIONS: konteynerin tənzimlənməsi üçün əlavə parametrlər.
- IMAGE: konteyner yaradılacaq image.
- COMMAND: konteyner daxilində icra olunacaq komanda.
- ARG...: komanda üçün arqumentlər.
Əsas istifadə nümunəsi
Bu nümunədə Nginx veb-serverinin çalışdığı konteynerdəki 80 portu hədəf maşının 8080 portuna yönləndirilir. İndi siz veb-serverə brauzerdə http://localhost:8080 ünvanını açaraq daxil ola bilərsiniz.
docker run -d -p 8080:80 nginx
7.2 Portların yönləndirilməsinin digər variantları
1. Çoxsaylı port yönləndirməsi
Docker birdən çox portu eyni anda yönləndirməyə imkan verir. Bunun üçün bir neçə -p
opsiyası istifadə olunur.
Nümunə
Bu nümunədə konteynerin 80 portu hostun 8080 portuna, konteynerin 443 portu isə hostun 8443 portuna yönləndirilir.
docker run -d -p 8080:80 -p 8443:443 nginx
2. IP-adres göstərişi ilə port yönləndirməsi
Siz həmçinin yönləndirilmiş portun bağlanacağı konkret IP-adresi göstərə bilərsiniz. Bu, host-maşında bir neçə şəbəkə interfeysi olduğu halda faydalıdır.
Nümunə
Bu nümunədə konteynerin 80 portu yalnız host-maşının 127.0.0.1 interfeysindəki 8080 portuna yönələ bilir. Bu o deməkdir ki, xidmətə yalnız lokal maşından daxil olmaq mümkündür.
docker run -d -p 127.0.0.1:8080:80 nginx
3. Portlar diapazonunun yönləndirilməsi
Bir portlar diapazonunu yönləndirmək lazım olduqda, Docker bunu diapazon sintaksisi vasitəsi ilə etməyə imkan verir.
Nümunə
Bu nümunədə konteynerin 7000-dən 8000-ə qədər portları host-maşının 7000-dən 8000-ə qədər portlarına yönləndirilir.
docker run -d -p 7000-8000:7000-8000 someimage
7.3 İstifadənin praktiki ssenariləri
1. Veb serverə çıxış
Portların yönləndirilməsi tez-tez konteynerlər daxilində işləyən veb serverlərə çıxış təmin etmək üçün istifadə olunur.
docker run -d -p 8080:80 nginx
Bu komandadan sonra, konteynerin 80 saylı portunda çalışan Nginx veb serveri, host maşınının 8080 saylı portunda əlçatan olacaq.
2. Məlumat bazasına çıxış
Portların yönləndirilməsi həm də konteynerlər daxilində işləyən məlumat bazalarına çıxış üçün faydalıdır.
docker run -d -p 5432:5432 -e POSTGRES_PASSWORD=mysecretpassword postgres
Bu nümunədə PostgreSQL, konteynerin 5432 saylı portunda işləyir və host maşınının 5432 saylı portunda əlçatan olur.
3. Test və inkişaf
Tətbiqlərin hazırlanması zamanı Docker konteynerləri tez-tez izolə olunmuş test mühitləri yaratmaq üçün istifadə olunur. Portların yönləndirilməsi, tərtibatçılara öz tətbiqlərini real mühitə yaxın şəraitdə sınaqdan keçirmək imkanı verir.
docker run -d -p 8080:80 -p 8443:443 myapp
Bu nümunə tərtibatçıya tətbiqi 8080 və 8443 portlarında sınaqdan keçirmək imkanı verir ki, bu da istehsal mühitində istifadə olunan portlara uyğundur.
7.4 Əlavə tövsiyələr
1. Portların mühafizəsi
Portların yönləndirilməsi zamanı təhlükəsizliyi nəzərə almaq vacibdir. Açıq portlar hücumlar üçün hədəf ola bilər. Yalnız lazım olan portları yönləndirdiyinizə əmin olun və girişi məhdudlaşdırmaq üçün firewall istifadə edin.
2. Firewall və NAT istifadəsi
Təhlükəsizliyi artırmaq və şəbəkə trafikini idarə etmək üçün Firewall və Network Address Translation (NAT) texnologiyalarından istifadə etməyi nəzərdən keçirin. Bu, xidmətlərinizə girişə məhdudiyyət qoymağa və şəbəkə bağlantılarını idarə etməyə kömək edəcək.
3. Monitorinq və loglama
Yönləndirilmiş portlar vasitəsilə keçən trafiki izləmək üçün monitorinq və loglama alətlərindən istifadə etməyi nəzərdən keçirin. Bu, şəbəkə trafikində anomaliyaları aşkar etməyə və onlara reaksiya verməyə kömək edəcək.
GO TO FULL VERSION