我在处理 Docker 网络中的容器时遇到了问题。我了解不同类型的网络,例如覆盖、桥接、网络。但我不知道如何让我的容器相互通信。
实际示例:我有一台 Web 服务器。我的 Web 服务器上有两个 docker 容器。第一个容器包含 nginx。第二个容器包含 gitlab 实例。
我需要将带有 proxy_pass 变量的 nginx 指向我的 gitlab 容器。
以下是我所知道的两种方法:
- 我添加了指向 Docker 容器的链接。Docker 已弃用这些链接,因此这不是一个选项。
- 我正在使用 dnsdock。我正在使用 aacebedo 的 dnsdock docker。它允许我通过为容器提供标志来为容器提供可解析 dns 的名称
com.dnsdock.alias
。
这是正常的做法吗?有没有更好的综合方法来解决此问题,而无需在网络中添加 DNS 服务器?
答案1
我想我已经找到规范答案了。
- 我为我的 Docker 容器创建了一个网络。
- 我为他们提供了一个网络别名。
现在 docker 将通过 net-alias 解析它们。作为额外的好处,这可能允许服务器之间无忧无虑地进行覆盖网络。但我还没有测试过,所以不要把我逼到这个地步。