Respuestas:
Para exponer solo un puerto, esto es lo que debe hacer:
docker run -p <host_port>:<container_port>
Para exponer múltiples puertos, simplemente proporcione múltiples -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?
publishno es expose.
En su Dockerfile, puede usar el verbo EXPOSEpara exponer múltiples puertos.
p.ej
EXPOSE 3000 80 443 22
Luego le gustaría construir una nueva imagen basada en lo anterior Dockerfile.
p.ej
docker build -t foo:tag .
A continuación, puede utilizar la -pde asignar el puerto host con el puerto de contenedores, tal como se define en el anterior EXPOSEde Dockerfile.
p.ej
docker run -p 3001:3000 -p 23:22
En caso de que desee exponer un rango de puertos continuos, puede ejecutar docker de esta manera:
docker run -it -p 7100-7120:7100-7120/tcp
si usa el docker-compose.ymlarchivo:
services:
varnish:
ports:
- 80
- 6081
También puede especificar el host / puerto de red
varnish:
ports:
- 80:80
- 6081:6081
Si está creando un contenedor a partir de una imagen y desea exponer múltiples puertos (no publicar), puede usar el siguiente comando:
docker create
container name--name --expose 7000 --expose 7001image name
Ahora, cuando inicie este contenedor con el docker startcomando, los puertos configurados arriba estarán expuestos.