
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 :)