添加 8.8.8.8 DNS 条目后,Docker 映像停止解析 host.docker.internal
Posted
技术标签:
【中文标题】添加 8.8.8.8 DNS 条目后,Docker 映像停止解析 host.docker.internal【英文标题】:Docker image stops resolving host.docker.internal after I add 8.8.8.8 DNS entry 【发布时间】:2022-01-20 01:10:56 【问题描述】:我必须添加 2 个 DNS 条目 8.8.8.8
和 8.8.4.4
,之后我的图像无法连接到 Xdebug,因为我的图像中不再识别 host.docker.internal
。
curl: (6) Could not resolve host: host.docker.internal
(在 docker 镜像内部执行)
php:
build:
context: docker
dockerfile: php.dockerfile
container_name: php-site
volumes:
- .:/var/www/html
ports:
- "9000:9000"
networks:
- laravel
dns:
- 8.8.8.8
- 8.8.4.4
当我删除这些 DNS 条目并重新加载容器时,一切正常。
我觉得解决方案并不难找到,但我不是网络专家,所以我请你帮忙。
【问题讨论】:
【参考方案1】:在架构上,容器解决方案都运行内部 DNS 服务,这些服务转发给上游 DNS 提供商,如 8.8.8.8,如果您直接将 DNS 设置为在 8.8.8.8 进行解析,则不会通过内部 DNS “代理”,即负责解析docker.internal等
上游是通过 /etc/resolv.conf 设置的,因此如果您将系统 DNS 更新为 8.8.8.8 会更容易。
【讨论】:
以上是关于添加 8.8.8.8 DNS 条目后,Docker 映像停止解析 host.docker.internal的主要内容,如果未能解决你的问题,请参考以下文章
创建好docker后不能apt-get update解决方法
创建好docker后不能apt-get update解决方法