首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >不能对“外部”DNS服务器进行任何DNS查找?

不能对“外部”DNS服务器进行任何DNS查找?
EN

Stack Overflow用户
提问于 2019-02-24 02:11:21
回答 2查看 153关注 0票数 1

在过去的几周里,我一直在尝试修复我的Docker堆栈中的一个bug,但是没有结果。

这是正在讨论的撰写文件(简化为相关内容):

代码语言:javascript
运行
AI代码解释
复制
version: '3.7'
services:
  php:
    ...
    dns:
      - 1.1.1.1
      - 1.0.0.1
networks:
  default:
    internal: true
      driver: overlay

它可以很好地部署,直到我必须做任何需要“外部”DNS请求的事情。

例如:在我的容器中,我手动运行curl https://www.google.com

这将导致以下错误

curl:(6)无法解析主机: google.com

这是容器中我的/etc/resolv.conf的内容:

代码语言:javascript
运行
AI代码解释
复制
search finlaydag33k.nl
nameserver 127.0.0.11
options ndots:0

运行docker inspect -f '{{.HostConfig.DNS}}' container-id将产生以下输出:

1.1.1.1 1.0.0.1

我的问题是,我做错了什么,我如何解决这个问题?它可以通过dns名称到达同一堆栈中的服务,只是不需要和外部DNS (如1.1.1.18.8.8.8)的域。没有什么东西被我的防火墙挡住了。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-02-25 04:47:08

这是一个“多头”的时刻。

显然(虽然我在文档中找不到这一点),容器只连接到default网络,这是一个overlay网络。

这意味着必须将bridge网络显式地添加到这个容器中(并且显式地将其连接到default网络,以便与堆栈中的其他容器通信)。

这是没有记录的,所以我认为它已经能够到达外面。

在手动将defaultbridge网络添加到容器后,一切都按预期工作。

代码语言:javascript
运行
AI代码解释
复制
version: '3.7'
services:
  php:
    ...
    networks:
      - default
      - bridge
    dns:
      - 1.1.1.1
      - 1.0.0.1
networks:
  default:
    internal: true
      driver: overlay
  bridge:
    external: true
票数 1
EN

Stack Overflow用户

发布于 2019-02-25 04:47:04

尝试将DNS转发器添加到‘/etc/surv.conf’通过添加

代码语言:javascript
运行
AI代码解释
复制
  server=8.8.8.8
  server=1.1.1.1

看看curl现在是否解决了google,在您添加了以下内容之后

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54850834

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档