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 -pargumentos:
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?
publishnão é expose.
No seu Dockerfile, você pode usar o verbo EXPOSEpara 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 -pmapear porta do host com o porto de contentores, conforme definido na acima EXPOSEde 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 startcomando, as portas configuradas acima serão expostas.