Porty kontenerów to określone porty sieciowe, które można powiązać z określonymi usługami lub aplikacjami w kontenerze.
Każdy kontener może mieć własne porty, które mogą być używane do komunikacji ze światem zewnętrznym lub do komunikacji z innymi kontenerami. Podczas uruchamiania kontenera można określić, które porty powinny być dostępne wewnątrz kontenera i które porty powinny być przekazywane do maszyny hosta.
ports:
external_port:Internal port
Na przykład, przekierujmy port 80 jako 8094:
docker-nginx:
image: nginx
ports:
- '8094:80'
Gdy kontener jest uruchomiony, aplikacja wewnątrz kontenera może nasłuchiwać lub wysyłać dane przez odpowiedni port. Użytkownicy mogą wchodzić w interakcje z aplikacją, uzyskując dostęp do portu kontenera, który został przekierowany na maszynę hosta.
Aby uruchomić porty kontenera, należy użyć polecenia docker run
z flagą -p
lub --publish
.
Składnia polecenia docker run z flagą -p
jest następująca:
docker run -p <host port>:<container port> <image_name>
Gdzie:
<host-port> to port na hoście, który będzie proxy do portu kontenera.
<container-port> - port w kontenerze, który będzie dostępny przez określony port hosta.
<image_name> - nazwa obrazu kontenera, który ma zostać uruchomiony.
Na przykład, aby uruchomić kontener z serwerem WWW na porcie 80 i proxy go do portu 8080 hosta, można użyć następującego polecenia:
docker run -p 8080:80 nginx
Serwer WWW uruchomiony w kontenerze będzie teraz dostępny na porcie 8080 hosta.
Można również użyć zakresu portów, określając wiele par <port hosta>:<port kontenera>.
Na przykład:
docker run -p 8080-8082:80-82 nginx
Spowoduje to przekierowanie portów 80, 81 i 82 w kontenerze odpowiednio na porty 8080, 8081 i 8082 hosta. Po uruchomieniu kontenera z proxy portów, będzie można uzyskać do nich dostęp za pośrednictwem określonych portów hosta.