Respostas:
Para expor apenas uma porta, é isso que você precisa fazer:
docker run -p <host_port>:<container_port>
Para expor várias portas, basta fornecer vários -p
argumentos:
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
não é expose
.
No seu Dockerfile
, você pode usar o verbo EXPOSE
para expor várias portas.
por exemplo
EXPOSE 3000 80 443 22
Você gostaria de criar uma nova imagem com base acima Dockerfile
.
por exemplo
docker build -t foo:tag .
Então você pode usar a -p
mapear porta do host com o porto de contentores, conforme definido na acima EXPOSE
de Dockerfile
.
por exemplo
docker run -p 3001:3000 -p 23:22
Caso você queira expor uma variedade de portas contínuas, execute o docker da seguinte maneira:
docker run -it -p 7100-7120:7100-7120/tcp
se você usar docker-compose.yml
arquivo:
services:
varnish:
ports:
- 80
- 6081
Você também pode especificar a porta do host / rede
varnish:
ports:
- 80:80
- 6081:6081
Se você estiver criando um contêiner a partir de uma imagem e quiser expor várias portas (não publicar), poderá usar o seguinte comando:
docker create --name
container name
--expose 7000 --expose 7001image name
Agora, quando você inicia este contêiner usando o docker start
comando, as portas configuradas acima serão expostas.