Abrir puertos a contenedores Docker

Abrir puertos a contenedores Docker

Estoy comenzando con Docker, simplemente intento ejecutar un contenedor Docker con una aplicación web e intento verlo en nuestra red local.

Instalé un Ubuntu 14 LTS nuevo en VirtualBox, sin ningún servicio adicional (sin GUI, sin LAMP, sin OpenSSH...), y luego instalé solo Docker:

curl -sSL https://get.docker.com/ | sh

y he ejecutado un contenedor Odoo (OpenERP) (anteriormente ejecuté el contenedor postgree)

docker run -d -e POSTGRES_USER=odoo -e POSTGRES_PASSWORD=odoo --name db postgres
docker run -p 127.0.0.1:8069:8069 --name odoo --link db:db -t odoo

Muy simple. Parece que está funcionando. No instalé el navegador, pero me conecté vía telnet a 127.0.0.1:8069 y envié la solicitud GET. Respondió.

Ahora necesito acceder al servicio desde fuera. ¿Cómo?

  • La interfaz de red de VirtualBox está configurada como puente.

  • Configuré una IP fija (192.168.0.150) en la interfaz eth0 de Ubuntu.

  • UFW está deshabilitado

  • Puedo hacer ping a 192.168.0.150 desde otras computadoras y ubuntu responde.

  • Pero el navegador no detecta nada en 192.168.0.150:8069

  • No puedo conectarme vía telnet a 192.168.0.150:8069

Supongo que debe ser alguna configuración de redirección de puertos o mapeo de interfaz. ¿Usted me podría ayudar por favor? :)

Respuesta1

Finalmente encontré la respuesta. El problema fue la asignación del puerto. Si configura:

-p 127.0.0.1:8069:8069

estás exponiendo SÓLO localhost. Esta es una excelente opción de seguridad si solo necesita un servicio local y desea acceder a él únicamente desde el servidor. Pero, si desea exponer el puerto a TODAS las interfaces, simplemente escriba:

-p 8069:8069

Luego, podrá acceder al servicio a través de la red a través de la interfaz eth0 :)

información relacionada