Exponer el puerto de Docker internamente

Pregunta:

Me gustaría ejecutar un contenedor Docker que solo exponga sus puertos INTERNAMENTE dentro de la instancia de Docker en dicho host. Esto significa que NO lo quiero público.

¿Cómo se hace esto desde la línea de comandos? El siguiente código lo abre públicamente.

docker run -p 27017:27017 --name mongo mongo

Respuesta:

Si ejecuta:

docker run -p 27017:27017 --name mongo mongo

Luego, Docker lo interpreta como:

docker run -p 0.0.0.0:27017:27017 --name mongo mongo

Lo que significa que el puerto es accesible desde el host, pero también desde el exterior.

Puede verificarlo ejecutando nmap -p 27017 <host IP> desde una máquina diferente contra su host. El puerto 27017 debería aparecer como 'abierto'.

Si ejecuta:

docker run -p 127.0.0.1:27017:27017 --name mongo mongo

Entonces, solo se puede acceder al puerto desde el host.

Puede verificarlo ejecutando nmap -p 27017 <host IP> desde una máquina diferente contra su host. El puerto 27017 debería aparecer como "cerrado".

Finalmente, si ejecuta:

docker run --name mongo mongo

Entonces, todos los puertos serán locales para el contenedor.

Nuevamente, puede verificar eso ejecutando nmap en su host contra el contenedor: nmap -p 27017 <container IP> . El puerto 27017 debería aparecer como "cerrado".

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım