¿Cómo puedo exponer más de 1 puerto con Docker?

Resuelto nubela asked hace 10 años • 7 respuestas

Entonces tengo 3 puertos que deberían estar expuestos a la interfaz de la máquina. ¿Es posible hacer esto con un contenedor Docker?

nubela avatar Dec 31 '13 01:12 nubela
Aceptado

Para exponer solo un puerto, esto es lo que debe hacer:

docker run -p <host_port>:<container_port>

Para exponer varios puertos, simplemente proporcione varios -pargumentos:

docker run -p <host_port1>:<container_port1> -p <host_port2>:<container_port2>
Tania Ang avatar Dec 31 '2013 03:12 Tania Ang

Paso 1

En su Dockerfile, puede utilizar el verbo EXPOSEpara exponer varios puertos.
p.ej

EXPOSE 3000 80 443 22

Paso 2

Luego le gustaría crear una nueva imagen basada en lo anterior Dockerfile.
p.ej

docker build -t foo:tag .

Paso 3

Luego puede usar -ppara asignar el puerto del host con el puerto del contenedor, como se define anteriormente EXPOSEen Dockerfile.
p.ej

docker run -p 3001:3000 -p 23:22

En caso de que desee exponer una variedad de puertos continuos, puede ejecutar la ventana acoplable de esta manera:

docker run -it -p 7100-7120:7100-7120/tcp 
mainframer avatar Sep 27 '2015 09:09 mainframer

si usas docker-compose.ymlel archivo:

services:
    varnish:
        ports:
            - 80
            - 6081

También puede especificar el puerto de host/red comoHOST/NETWORK_PORT:CONTAINER_PORT

varnish:
    ports:
        - 81:80
        - 6081:6081
Rashidul Islam avatar Mar 03 '2017 04:03 Rashidul Islam