在过去的几周里,我正在尝试修复我的 Docker 堆栈中的一个错误,但无济于事。
这是有问题的撰写文件(精简为相关内容):
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
容器内我的内容:
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
or 8.8.8.8
)的域。我的防火墙没有阻止任何东西。