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 -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
no es expose
.
En su Dockerfile
, puede usar el verbo EXPOSE
para 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 -p
de asignar el puerto host con el puerto de contenedores, tal como se define en el anterior EXPOSE
de 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.yml
archivo:
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 start
comando, los puertos configurados arriba estarán expuestos.