我从 docker 开始,只是尝试运行一个带有 web 应用程序的 Docker 容器并尝试在我们的本地网络中看到它。
我在 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 请求。它回答了。
现在我需要从外部访问该服务。怎么做?
VirtualBox 网络接口配置为桥接。
我已经在 Ubuntu eth0 接口中设置了一个固定 IP(192.168.0.150)。
UFW 已禁用
我可以从其他计算机 ping 到 192.168.0.150,并且 ubuntu 可以应答。
但浏览器在 192.168.0.150:8069 处没有检测到任何内容
无法通过 telnet 连接到 192.168.0.150:8069
我想这肯定是端口重定向或接口映射的某种配置。你能帮我吗?:)
答案1
最后我找到了答案。问题出在端口分配上。如果您设置:
-p 127.0.0.1:8069:8069
您仅公开 localhost。如果您只需要本地服务,并且只想从服务器访问它,那么这是一个很棒的安全选项。但是,如果您想将端口公开给所有接口,只需输入:
-p 8069:8069
然后,你就可以通过eth0接口通过网络访问该服务了:)