CodeGym /Kursy /Docker SELF /Przekierowanie portów

Przekierowanie portów

Docker SELF
Poziom 12 , Lekcja 1
Dostępny

7.1 Podstawy przekierowania portów (Port forwarding)

Przekierowanie portów to ważna funkcja Dockera, która pozwala aplikacjom wewnątrz kontenerów być dostępnymi na zewnątrz. Ta funkcja jest potrzebna, aby łączyć się z serwerami WWW, bazami danych lub innymi usługami uruchomionymi w kontenerach z maszyny-host lub nawet z innych sieci.

Domyślnie kontenery działają w izolowanej sieci. Aby usługa w kontenerze była dostępna, Docker przekierowuje porty kontenera na porty maszyny-host.

Do przekierowania portów używa się parametru -p lub --publish w poleceniu docker run.

Składnia


docker run -p [HOST_PORT]:[CONTAINER_PORT] [OPTIONS] IMAGE [COMMAND] [ARG...]

Gdzie:

  • HOST_PORT: port na maszynie-host, przez który będzie przechodził ruch.
  • CONTAINER_PORT: port wewnątrz kontenera, do którego będzie przekierowywany ruch.
  • OPTIONS: dodatkowe parametry do konfiguracji kontenera.
  • IMAGE: obraz, z którego tworzony jest kontener.
  • COMMAND: polecenie wykonywane wewnątrz kontenera.
  • ARG...: argumenty dla polecenia.

Przykład podstawowego użycia

W tym przykładzie port 80 kontenera, gdzie działa serwer WWW Nginx, jest przekierowany na port 8080 maszyny-host. Po tym kroku będziesz mógł otworzyć serwer WWW w przeglądarce pod adresem http://localhost:8080.


docker run -d -p 8080:80 nginx

7.2 Inne opcje przekierowania portów

1. Wielokrotne przekierowanie portów

Docker pozwala na przekierowanie kilku portów jednocześnie. W tym celu używa się kilku opcji -p.

Przykład

W tym przykładzie port 80 kontenera jest przekierowany na port 8080 hosta, a port 443 kontenera — na port 8443 hosta.



docker run -d -p 8080:80 -p 8443:443 nginx

2. Przekierowanie portów z określeniem adresu IP

Możesz określić konkretny adres IP, do którego zostanie przypisany przekierowany port. Jest to szczególnie przydatne, jeśli maszyna hosta ma kilka interfejsów sieciowych i trzeba ograniczyć dostęp do kontenera.

Przykład:

W tym przykładzie port 80 kontenera jest przekierowany na port 8080 tylko na interfejsie 127.0.0.1 maszyny hosta. Oznacza to, że dostęp do usługi będzie możliwy tylko z samej maszyny hosta.


docker run -d -p 127.0.0.1:8080:80 nginx

3. Przekierowanie zakresu portów

Jeśli trzeba przekierować kilka portów jednocześnie, Docker obsługuje zakresy portów.

Przykład:

W tym przykładzie porty od 7000 do 8000 kontenera są przekierowane na porty od 7000 do 8000 maszyny hosta.


docker run -d -p 7000-8000:7000-8000 someimage

7.3 Praktyczne scenariusze użycia

1. Dostęp do web-serwera

Przekierowanie portów najczęściej wykorzystuje się do zapewnienia dostępu do web-serwera uruchomionego wewnątrz kontenerów.


docker run -d -p 8080:80 nginx 

Po wykonaniu tej komendy web-serwer Nginx, działający na porcie 80 kontenera, stanie się dostępny na porcie 8080 maszyny hosta.

2. Dostęp do bazy danych

Przekierowanie portów jest również wygodne do uzyskiwania dostępu do baz danych uruchomionych w kontenerach.


docker run -d -p 5432:5432 -e POSTGRES_PASSWORD=mysecretpassword postgres

W tym przykładzie PostgreSQL, działający na porcie 5432 kontenera, będzie dostępny na porcie 5432 maszyny hosta.

3. Testowanie i rozwój

Kontenery Docker są często używane do tworzenia izolowanych środowisk testowych. Przekierowanie portów pozwala deweloperom uruchamiać i testować aplikacje tak, jakby działały w rzeczywistych warunkach.


docker run -d -p 8080:80 -p 8443:443 myapp

W tym przykładzie aplikacja jest testowana na portach 8080 i 8443, co odpowiada standardowym portom używanym w środowisku produkcyjnym.

7.4 Dodatkowe rekomendacje

1. Ochrona portów

Gdy przekierowujesz porty, pamiętaj o bezpieczeństwie. Otwarte porty mogą stać się celem ataków. Przekierowuj tylko te porty, które są naprawdę potrzebne, i korzystaj z firewalla, aby ograniczyć dostęp.

2. Firewalle i NAT

Aby zwiększyć ochronę i zarządzać ruchem, korzystaj z firewalli i Network Address Translation (NAT). Dzięki temu możesz ograniczyć dostęp do swoich usług i kontrolować połączenia sieciowe.

3. Monitoring i logi

Skonfiguruj monitoring i zbieranie logów, aby śledzić ruch na przekierowanych portach. To pomoże szybciej zauważać i reagować na podejrzane aktywności.

Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION