Docker EXPONE un puerto solo al host

99

¿Es la ventana acoplable capaz de exponer un puerto solo al host y no al exterior?

Necesito ejecutar una ventana acoplable con una base de datos mongo, y quería que solo fuera accesible desde el host, pero necesito vincular el puerto del host 27017.

¿Es esto posible o la única forma posible es cambiar las definiciones del firewall?

Ruben
fuente

Respuestas:

140

Claro, solo átalo así localhost:

Docker ejecutar -p 127.0.0.1:27017:27017

Además: su host también puede hablar con cada contenedor normalmente a través de su IP. Úselo docker inspect $IDpara obtener un volcado json (además de otras cosas) que contenga la IP de la red.

ZeissS
fuente
4
Entonces, ¿es algo así como [1] Docker run -p 27017: 27017 -v / var / lib / mongodb / master: / data mongo: storage_test / usr / bin / start-mongo [2] docker run -p 127.0.0.1: 27017: 27017 ...?
Ruben
17
La segunda opción se une a localhost, sí. El primero pone el puerto a disposición del público. Si no desea un puerto estático, use 127.0.0.1::27017.
ZeissS
3
Esta solución no parece funcionar para el modo enjambre ver este problema de
github
1
¿Es el equivalente docker-compose simplemente service-name: { ... ports: [ "127.0.0.1:27017:27017" ] }?
Groostav
1
¿Cuál es el problema en mi docker-compose aunque se vincula solo a localhost pero es de acceso público? stackoverflow.com/questions/50621936/…
Tara Prasad Gurung