将外部 DNS 指向 Docker DNS

将外部 DNS 指向 Docker DNS

我刚刚开始使用 Docker,如果我能完成它,我就会将我的所有服务切换到它。

我最初不喜欢 Docker,因为我认为访问容器的唯一方法是将端口转发到 Docker 主机。后来我发现了 Docker 网络和网络ipvlan。将子网络路由到我现有的网络基础设施的能力非常理想,所有设备都可以通过简单的静态路由访问容器。

还剩下一个问题。DNS。目前我有一台 Windows 服务器,它托管 AD、内部 DNS 和 DHCP 服务器。DHCP 服务器动态更新 DNS 记录。这与我当前的虚拟机设置配合得很好,但 Docker 主机会自动为容器分配 IP 地址。容器可以通过容器名称相互解析。

因为我很懒,不想手动添加 DNS 条目,所以我想添加一个 DNS 服务器容器,用于解析 Docker 主机。为了便于解释,我绘制了一张设置图:

我的设置的手绘图:

我的设置的手绘图

假设a.home是我的基础设施的内部域名。网络上的所有设备在地址上都有一个主 DNS 服务器10.0.0.2docker.a.home指向 docker 主机。

在 docker 主机内部有一个10.0.1.0/24网络,所有 docker 容器都连接到该网络。容器按预期相互解析。我想在 docker 主机上配置一个 DNS 服务器容器,它将container-name.docker.a.home域解析为正确的 IP 地址。

例子:

  1. c1.docker.a.home将决定10.0.1.2
  2. c2.docker.a.home将决定10.0.1.3

主 DNS 服务器将具有NS指向 Docker DNS 服务器容器的记录。

我的设置可能过于复杂,如果您有其他更有效的方法来实现相同的结果,我愿意听取您的建议。如果我的设置对您有意义,我将非常感激您的帮助或示例 docker compose 文件来帮助我入门。

提前非常感谢您。

相关内容