【问题标题】:Docker DNS setup on VPSVPS 上的 Docker DNS 设置
【发布时间】:2015-08-08 23:58:40
【问题描述】:

我有一个具有静态 IP 地址的 VPS(例如 108.1.2.3)。在这台服务器上,我有两个具有不同 IP 的 docker 容器(例如 10.1.2.3 和 10.1.2.4)。我有两个域:domain1.com 和 domain2.com。 我的问题是:如何为这两个域设置 DNS 服务器? 我需要将 domain1.com 指向 10.1.2.3,将 domain2.com 指向 10.1.2.4,并通过浏览器访问每个域。

我找到了solution,但它对我不起作用。

【问题讨论】:

  • 哪个部分不起作用?看来你的解决方案是对的,两个端口上的两个容器,转发到自己的80s端口,nginx根据收到的域名转发到对应的端口。
  • 该脚本运行良好,但是!正如它所说的“如果您已经将 DNS 中的 A 记录指向该服务器 IP”。这样,每个实例只有一个 IP 地址。只有端口不同。如果我有 66k 容器怎么办?它病了,但是如果呢?:-) 以一种更好的方式需要为用户提供他自己的 IP 地址。
  • 我发现了第二个问题。每次创建新容器时,我都需要重新加载 nginx 服务器。当多个用户创建一个新容器时,这很糟糕。

标签: networking dns docker


【解决方案1】:

除非您向 VPS 添加网络接口并为其提供多个静态 IP 并将容器端口绑定到这些 IP(使用 docker run -pip:port:c_port 值),否则您将需要某种反向代理。

当使用 nginx 等反向代理时,您对 nginx 的问题似乎是需要重新加载。请注意,您不仅需要在每次启动新容器时重新加载,而且每次重新启动容器时都需要重新加载(如果您使用内部链接到其他容器的 nginx 容器..)

您需要的是服务发现和配置侦听器来自动重新加载您的反向代理,例如:etcd+confd 或https://consul.io/

【讨论】:

  • 谢谢,文森特!那很有用!
猜你喜欢
  • 1970-01-01
  • 2017-03-21
  • 2017-04-16
  • 1970-01-01
  • 2018-02-13
  • 1970-01-01
  • 1970-01-01
  • 2014-09-01
相关资源
最近更新 更多