run - docker-compose
¿Cómo puedo exponer más de 1 puerto con Docker? (3)
Así que tengo 3 puertos que deberían estar expuestos a la interfaz de la máquina. ¿Es posible hacer esto con un contenedor Docker?
Paso 1
En su Dockerfile
, puede usar el verbo EXPOSE
para exponer múltiples puertos.
p.ej
EXPOSE 3000 80 443 22
Paso 2
A continuación, le gustaría crear una nueva imagen basada en el Dockerfile
anterior.
p.ej
docker build -t foo:tag .
Paso 3
Luego, puede usar la -p
para asignar el puerto del host con el puerto de contenedor, tal como se definió anteriormente en EXPOSE
of Dockerfile
.
p.ej
docker run -p 3001:3000 -p 23:22
En caso de que desee exponer un rango de puertos continuos, puede ejecutar la ventana acoplable de esta manera:
docker run -it -p 7100-7120:7100-7120/tcp
Para exponer un solo puerto, esto es lo que necesita hacer:
docker run -p <host_port>:<container_port>
Para exponer múltiples puertos, simplemente proporcione múltiples argumentos -p
:
docker run -p <host_port1>:<container_port1> -p <host_port2>:<container_port2>
Si usa el archivo docker-compose.yml
:
services:
varnish:
ports:
- 80
- 6081
También puede especificar el puerto de host / red
varnish:
ports:
- 80:80
- 6081:6081