Abra portas para contêineres Docker

Abra portas para contêineres Docker

Estou começando com o docker, apenas tentando executar um contêiner Docker com uma aplicação web e tentando vê-lo em nossa rede local.

Instalei um novo Ubuntu 14 LTS no VirtualBox, sem nenhum serviço extra (sem GUI, sem LAMP, sem OpenSSH...), e depois instalei apenas o Docker:

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

e eu executei um contêiner Odoo (OpenERP) (anteriormente executei um contêiner 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

Muito simples. Parece que está funcionando. Não instalei o navegador, mas conectei via telnet ao 127.0.0.1:8069 e enviei solicitação GET. Ele respondeu.

Agora preciso acessar o serviço de fora. Como?

  • A interface de rede do VirtualBox está configurada como bridge.

  • Eu configurei um IP fixo (192.168.0.150) na interface Ubuntu eth0.

  • UFW está desativado

  • Posso fazer ping para 192.168.0.150 de outros computadores e o Ubuntu responde.

  • Mas o navegador não detecta nada em 192.168.0.150:8069

  • Não é possível conectar via telnet a 192.168.0.150:8069

Suponho que deve ser alguma configuração de redirecionamento de porta ou mapeamento de interface. Você poderia me ajudar por favor? :)

Responder1

Finalmente encontrei a resposta. O problema era a atribuição da porta. Se você definir:

-p 127.0.0.1:8069:8069

você está expondo SOMENTE localhost. Esta é uma ótima opção de segurança se você precisar apenas de um serviço local e quiser acessá-lo apenas a partir do servidor. Mas, se você quiser expor a porta para TODAS as interfaces, basta digitar:

-p 8069:8069

Então, você pode acessar o serviço pela rede via interface eth0 :)

informação relacionada