Docker 添加 8.8.8.8 DNS 条目后图像停止解析 host.docker.internal
Docker image stops resolving host.docker.internal after I add 8.8.8.8 DNS entry
我必须添加 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 条目并重新加载容器时,一切正常。
我觉得解决方案并不难找到,但我不是网络专家,所以我请你帮忙。
在架构上,容器解决所有 运行 转发到上游 DNS 提供商(如 8.8.8.8)的内部 DNS 服务,如果您直接将 DNS 设置为在 8.8.8.8 解析,它不会被“代理”通过内部 DNS,负责解析 docker.internal,等等
upstream是通过/etc/resolv.conf设置的,所以如果你只更新系统DNS到8.8.8.8就更容易了。
我必须添加 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 条目并重新加载容器时,一切正常。
我觉得解决方案并不难找到,但我不是网络专家,所以我请你帮忙。
在架构上,容器解决所有 运行 转发到上游 DNS 提供商(如 8.8.8.8)的内部 DNS 服务,如果您直接将 DNS 设置为在 8.8.8.8 解析,它不会被“代理”通过内部 DNS,负责解析 docker.internal,等等
upstream是通过/etc/resolv.conf设置的,所以如果你只更新系统DNS到8.8.8.8就更容易了。