打开 Docker 容器的端口

打开 Docker 容器的端口

我从 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接口通过网络访问该服务了:)

相关内容