无法对 "external" DNS 服务器进行任何 DNS 查询?
Can't make any DNS lookups to "external" DNS servers?
过去几周我一直在尝试修复我的 Docker 堆栈中的错误,但无济于事。
这是有问题的撰写文件(精简为相关内容):
version: '3.7'
services:
php:
...
dns:
- 1.1.1.1
- 1.0.0.1
networks:
default:
internal: true
driver: overlay
它部署得很好,直到我必须做 任何需要 "external" DNS 请求的事情。
例如。在我的容器中,我手动 运行 curl https://www.google.com
.
这导致以下错误
curl: (6) Could not resolve host: google.com
这是我的/etc/resolv.conf
容器里面的内容:
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.1
或 8.8.8.8
)。
我的防火墙没有阻止任何东西。
尝试通过添加
将 DNS 转发器添加到“/etc/resolv.conf”
server=8.8.8.8
server=1.1.1.1
添加这个
后,看看 curl 现在是否正在解析 google
这是一个 "doh" 时刻。
显然(虽然我在文档中找不到这个),一个容器只连接到 default
网络,这是一个 overlay
网络。
这意味着必须明确地添加一个 bridge
网络(一个应该已经存在于你的群中)到这个容器(并且还明确地将它连接到 default
网络以便它可以与其他容器通信堆栈)。
这没有记录,所以我认为它已经能够到达外面了。
将 default
和 bridge
网络手动添加到容器后,一切正常。
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
过去几周我一直在尝试修复我的 Docker 堆栈中的错误,但无济于事。
这是有问题的撰写文件(精简为相关内容):
version: '3.7'
services:
php:
...
dns:
- 1.1.1.1
- 1.0.0.1
networks:
default:
internal: true
driver: overlay
它部署得很好,直到我必须做 任何需要 "external" DNS 请求的事情。
例如。在我的容器中,我手动 运行 curl https://www.google.com
.
这导致以下错误
curl: (6) Could not resolve host: google.com
这是我的/etc/resolv.conf
容器里面的内容:
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.1
或 8.8.8.8
)。
我的防火墙没有阻止任何东西。
尝试通过添加
将 DNS 转发器添加到“/etc/resolv.conf” server=8.8.8.8
server=1.1.1.1
添加这个
后,看看 curl 现在是否正在解析 google这是一个 "doh" 时刻。
显然(虽然我在文档中找不到这个),一个容器只连接到 default
网络,这是一个 overlay
网络。
这意味着必须明确地添加一个 bridge
网络(一个应该已经存在于你的群中)到这个容器(并且还明确地将它连接到 default
网络以便它可以与其他容器通信堆栈)。
这没有记录,所以我认为它已经能够到达外面了。
将 default
和 bridge
网络手动添加到容器后,一切正常。
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