【问题标题】:How to forward hostname based request to a specific docker container如何将基于主机名的请求转发到特定的 docker 容器
【发布时间】:2015-05-08 06:12:10
【问题描述】:

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

这个想法的灵感来自 apache 的 VirtualNameHost 模型,它执行此操作,除了 VirtualHost 而不是正在运行的容器。

【问题讨论】:

    标签: networking dns docker hostname


    【解决方案1】:

    Docker 本身无法做到这一点,但是有一个非常出色的 project by Jason Wilder 可以使用他自己开发的 docker-gen 实用程序(也可以在他的 Github 帐户上找到)解决了这个问题。您可以使用docker pull jwilder/nginx-proxy 拉取受信任的构建并运行它。然后,您可以非常轻松地启动另一个容器(您想在 web01.docker.example.org 主机名上监听的容器):

    docker run -it -h "web01.docker.example.org" myContainer

    nginx-proxy 容器会自动检测容器上暴露了哪些端口,并将容器绑定到该端口上的 nginx 后端。这也是如何让多个容器监听一个 IP 地址,但根据主机名路由到多个容器的方法。该项目还支持 SSL 和自定义 vhost.d 配置文件等。我已经使用它很长时间了,没有任何问题,为此强烈推荐它。祝你好运!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-07
      • 2013-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-18
      • 2022-06-15
      • 2017-10-18
      相关资源
      最近更新 更多