CodeGym /Kursy /Docker SELF /Publikacja portów kontenerów

Publikacja portów kontenerów

Docker SELF
Poziom 17 , Lekcja 3
Dostępny

4.1 Podstawowe koncepcje publikacji portów

Publikacja portów kontenerów w Dockerze pozwala serwisom działającym wewnątrz kontenerów być dostępnymi z zewnętrznej sieci lub z hosta. To ważna część konfiguracji aplikacji wielokontenerowych, ponieważ umożliwia interakcję z serwisami, takimi jak serwery WWW, bazy danych i inne aplikacje sieciowe. W tym wykładzie omówimy, jak publikować porty kontenerów i konfigurować dostęp do serwisów.

Podstawowe koncepcje publikacji portów

  • Mapowanie portów: przypisanie portu hosta do portu kontenera.
  • Parametr -p/--publish: służy do określenia mapowania portów podczas uruchamiania kontenera.
  • Parametr -P/--publish-all: automatyczne przypisanie portów hosta dla wszystkich eksportowanych portów kontenera.

Przykład użycia parametru -p

Podczas uruchamiania kontenera możesz użyć opcji -p do mapowania portu hosta na port kontenera. Format polecenia:

Terminal

docker run -d -p <host_port>:<container_port> <image> 

Przykład 1: Publikacja portu serwera WWW Nginx

Uruchomimy kontener z Nginx i opublikujemy port 80 kontenera na porcie 8080 hosta.

Teraz Nginx będzie dostępny pod adresem http://localhost:8080.

Terminal

docker run -d -p 8080:80 --name mynginx nginx 

Przykład 2: Publikacja wielu portów

Możesz opublikować wiele portów, podając kilka opcji -p.

W tym przykładzie Nginx będzie dostępny przez HTTP na porcie 8080 i przez HTTPS na porcie 8443.

Terminal

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

Przykład użycia parametru -P

Parametr -P automatycznie publikuje wszystkie porty określone w Dockerfile lub w ustawieniach kontenera, na losowe porty hosta.

Przykład:

Terminal

docker run -d -P --name mynginx nginx 

Aby sprawdzić, które porty zostały przypisane, użyj polecenia docker port:

Terminal

docker port mynginx

Wynik będzie wyglądał mniej więcej tak:

Terminal

80/tcp -> 0.0.0.0:32768
443/tcp -> 0.0.0.0:32769

4.2 Publikacja portów w Docker Compose

Do przypisania portów w Docker Compose używaj dyrektywy ports w pliku docker-compose.yml.

Przykład pliku docker-compose.yml

Yaml

version: '3.8'

services:
  web:
    image: nginx:latest
    ports:
      - "8080:80"
      - "8443:443"

Uruchom Docker Compose:

Terminal

docker compose up -d 

Teraz Nginx będzie dostępny pod adresami http://localhost:8080 i https://localhost:8443.

4.3 Dodatkowe parametry publikowania portów

1. Ograniczenie adresu IP

Możesz ograniczyć dostęp do portu kontenera, podając adres IP hosta.

Przykład:

W tym przykładzie Nginx będzie dostępny tylko z lokalnego hosta pod adresem http://127.0.0.1:8080.

Terminal

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

2. Używanie zakresu portów

Możesz określić zakres portów do publikowania.

Przykład:

Terminal

docker run -d -p 8080-8081:80-81 --name mynginx nginx 

Praktyczne porady:

  • Publikowanie tylko niezbędnych portów: Publikuj tylko te porty, które są naprawdę potrzebne do uzyskania dostępu do usług, aby zmniejszyć potencjalne luki w zabezpieczeniach.
  • Używanie zapory sieciowej: Skonfiguruj zaporę sieciową, aby ograniczyć dostęp do opublikowanych portów tylko z zaufanych adresów IP.
  • Monitorowanie i logowanie: Używaj narzędzi monitorowania i logowania do śledzenia dostępu do opublikowanych portów i wykrywania podejrzanej aktywności.
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION