1

我对 Docker 很陌生。我开始使用 VM 思维方式,但我意识到它使用了与 VM 甚至传统 LXC 容器完全不同的范式。

最大的挑战是了解网络的工作原理。我正在尝试使用 Docker 在需要一些相同端口的机器上运行多个服务,以避免端口冲突。

我想使用主机的 FQDN 访问所有这些,而不必担心将容器 FQDN 添加到 DNS。我将相关的容器端口转发到未使用的主机端口。

问题是,当我尝试从浏览器访问服务时,它被重定向到容器的 FQDN,它无法解决。结果是“找不到服务器”错误。

有没有办法将所有容器隐藏在主机的 FQDN 后面,而无需解析容器的 FQDN?

4

1 回答 1

1

您可以让每个 docker 容器使用不同的外部端口,然后让服务器 docker 使用 nginx 或 apache 之类的东西来反向代理请求。我必须构建这样的东西,将所有东西都放在一个主机名中,然后将所有流量传递到适当的容器和端口。

困难在于每次创建 docker 容器时都有新地址。您可以在它们启动时动态计算它们的地址,并让代理容器最后以这些地址启动。获取这些地址的方法是使用“docker inspect”并 awk 获取所需的数据,或者您可以使用其中一个库(如 docker-py)来获取相关数据。

于 2015-01-23T01:11:43.523 回答