微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我们可以为在本地系统上的 Docker Swarm 上运行的服务使用 DNS 名称吗?

如何解决我们可以为在本地系统上的 Docker Swarm 上运行的服务使用 DNS 名称吗?

假设我的本地系统上有一个由 3 个节点组成的 Swarm。我创建了一个服务说 Drupal,在这个群中复制 3。现在,假设每个节点都有一个运行 Drupal 的容器。现在,当我必须在浏览器中访问它时,我将不得不使用节点 <IP Address>:8080 之一的 IP 地址来访问 Drupal。 有没有办法可以为此服务设置 DNS 名称并使用 DNS 名称访问它,而不必使用 IP 地址和端口号?

解决方法

您需要配置您在进行查询的主机上使用的 DNS 服务器。因此,如果您的笔记本电脑查询公共 DNS,您需要创建一个公共 DNS 条目,该条目将从 Internet(在您拥有的域上)解析。这应该解析为运行容器的 docker 主机 IP,或这些主机前面的 LB。然后将主机上的端口发布到要访问的容器。

您不应该尝试直接与容器 IP 通信,这些 IP 无法从 docker 主机外部路由。用于服务发现的 docker DNS 用于容器到容器的通信。这与通过已发布端口进行的 docker 外部通信是分开的。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。