docker 容器无法使用其他容器的dns服务 adguard home
如果你的 Docker 容器无法使用其他容器的 DNS 服务,可能是因为你使用了自定义网络并且没有指定正确的 DNS 服务器。以下是一些可能的解决方法:
- 在 Dockerfile 中指定 DNS 服务器:
RUN echo "nameserver 172.17.0.1" > /etc/resolv.conf
其中 172.17.0.1 是你的 DNS 服务器的 IP 地址。
- 在 docker-compose.yml 文件中指定 DNS 服务器:
version: '3'
services:
app:
image: your-image
networks:
your-network:
ipv4_address: 172.20.0.2
dns:
- 172.17.0.1
networks:
your-network:
driver: bridge
ipam:
config:
- subnet: 172.20.0.0/16
gateway: 172.20.0.1
其中 172.17.0.1 是你的 DNS 服务器的 IP 地址。
- 在容器启动命令中指定 DNS 服务器:
docker run --dns 172.17.0.1 your-image
其中 172.17.0.1 是你的 DNS 服务器的 IP 地址。
如果你使用的是 AdGuard Home,你需要确保它在指定的 DNS 服务器上运行,并且你的容器可以访问该服务器。你可以尝试在容器中运行以下命令来测试 DNS 解析是否正常:
$ nslookup google.com
如果 DNS 解析正常,你应该能够看到返回的 IP 地址。如果没有,你需要检查你的 DNS 服务器配置并确保容器可以访问它
原文地址: https://www.cveoy.top/t/topic/dOp1 著作权归作者所有。请勿转载和采集!