如何将基于主机名的请求转发到特定的docker容器

如何将基于主机名的请求转发到特定的docker容器

我正在尝试使用基于主机名连接到 Docker 容器。即:我将浏览器连接到 web01.docker.example.org(假设 *.docker.example.org 上的通配符 DNS 记录指向我的 Docker 盒)。例如,如何启用 Docker 将此请求转发到我的 nginx Docker?

这个想法是受到 apache 的 VirtualNameHost 模型启发的,该模型可以实现这一点,只不过是针对 VirtualHost 而不是正在运行的容器。

答案1

您是否想使用单个公共 IP 地址,根据用于访问它的主机名将连接发送到不同的 Docker 容器?

一般来说这是不可能的;docker 通过 TCP 或 UDP 对话进行操作,并且它们的端点是 IP 地址,而不是主机名。

如果您想使用 HTTP 执行此操作,您可以设置一个反向代理容器,它将 HTTP 请求中继到正确的机器。否则,您必须为每个容器使用一个不同的 IP 地址。

相关内容