我开始与docker,只是试图运行一个networking应用程序的Docker容器,并试图看到它在我们的本地networking。
我已经在VirtualBox中安装了新的Ubuntu 14 LTS,没有任何额外的服务(没有GUI,没有LAMP,没有OpenSSH …),然后只安装了Docker:
curl -sSL https://get.docker.com/ | sh
我运行了一个Odoo(OpenERP)容器(以前运行过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
很简单。 它看起来像在工作。 我没有安装浏览器,但我通过telnet连接到127.0.0.1:8069,并发送GET请求。 它回答。
现在我需要从外面访问这个服务。 怎么样?
VirtualBoxnetworking接口被configuration为网桥。
我在Ubuntu eth0接口中设置了一个固定IP(192.168.0.150)。
UFW被禁用
我可以ping到192.168.0.150forms的其他电脑,和Ubuntu的答案。
但浏览器不检测任何东西在192.168.0.150:8069
无法通过telnet连接到192.168.0.150:8069
我猜想它必须是端口redirect或接口映射的一些configuration。 请问你能帮帮我吗? 🙂
最后我find了答案。 问题是港口分配。 如果你设置:
-p 127.0.0.1:8069:8069
你只暴露localhost。 如果您只需要本地服务,并且只想从服务器访问,则这是一个很好的安全选项。 但是,如果要将端口暴露给所有接口,只需键入:
-p 8069:8069
然后,你可以通过eth0接口通过networking访问服务:)