Docker-DNS解析容器的规范方式

Docker-DNS解析容器的规范方式

我在处理 Docker 网络中的容器时遇到了问题。我了解不同类型的网络,例如覆盖、桥接、网络。但我不知道如何让我的容器相互通信。

实际示例:我有一台 Web 服务器。我的 Web 服务器上有两个 docker 容器。第一个容器包含 nginx。第二个容器包含 gitlab 实例。

我需要将带有 proxy_pass 变量的 nginx 指向我的 gitlab 容器。

以下是我所知道的两种方法:

  1. 我添加了指向 Docker 容器的链接。Docker 已弃用这些链接,因此这不是一个选项。
  2. 我正在使用 dnsdock。我正在使用 aacebedo 的 dnsdock docker。它允许我通过为容器提供标志来为容器提供可解析 dns 的名称com.dnsdock.alias

这是正常的做法吗?有没有更好的综合方法来解决此问题,而无需在网络中添加 DNS 服务器?

答案1

我想我已经找到规范答案了。

  1. 我为我的 Docker 容器创建了一个网络。
  2. 我为他们提供了一个网络别名。

现在 docker 将通过 net-alias 解析它们。作为额外的好处,这可能允许服务器之间无忧无虑地进行覆盖网络。但我还没有测试过,所以不要把我逼到这个地步。

相关内容