如果你的 Docker 容器无法使用其他容器的 DNS 服务,可能是因为你使用了自定义网络并且没有指定正确的 DNS 服务器。以下是一些可能的解决方法:

  1. 在 Dockerfile 中指定 DNS 服务器:
RUN echo "nameserver 172.17.0.1" > /etc/resolv.conf

其中 172.17.0.1 是你的 DNS 服务器的 IP 地址。

  1. 在 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 地址。

  1. 在容器启动命令中指定 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 服务器配置并确保容器可以访问它

docker 容器无法使用其他容器的dns服务 adguard home

原文地址: https://www.cveoy.top/t/topic/dOp1 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录