Odpowiedzi:
Aby udostępnić tylko jeden port, musisz to zrobić:
docker run -p <host_port>:<container_port>
Aby udostępnić wiele portów, wystarczy podać wiele -p
argumentów:
docker run -p <host_port1>:<container_port1> -p <host_port2>:<container_port2>
Note: The -p flag can be used multiple times to configure multiple ports.
--env-file
?
publish
nie jest expose
.
W swoim Dockerfile
możesz użyć czasownika, EXPOSE
aby ujawnić wiele portów.
na przykład
EXPOSE 3000 80 443 22
Następnie chcesz zbudować nowy obraz na podstawie powyższego Dockerfile
.
na przykład
docker build -t foo:tag .
Następnie można użyć -p
do mapowania portu hosta z portu kontenerowego w rozumieniu wyżej EXPOSE
od Dockerfile
.
na przykład
docker run -p 3001:3000 -p 23:22
Jeśli chcesz udostępnić szereg ciągłych portów, możesz uruchomić dokera w następujący sposób:
docker run -it -p 7100-7120:7100-7120/tcp
jeśli używasz docker-compose.yml
pliku:
services:
varnish:
ports:
- 80
- 6081
Możesz także określić port hosta / sieci
varnish:
ports:
- 80:80
- 6081:6081
Jeśli tworzysz kontener z obrazu i chcesz udostępnić wiele portów (nie publikować), możesz użyć następującego polecenia:
doker utwórz --nazwa
container name
--wyświetl 7000 --wyświetl 7001image name
Teraz, gdy uruchomisz ten kontener za pomocą docker start
polecenia, skonfigurowane porty powyżej zostaną ujawnione.