运行报错-java.net.UnknownHostException: failed to resolve 'host.docker.internal'
背景
听闻网上配置访问宿主机,只需要配置 : host.docker.internal
然后就报错: java.net.UnknownHostException: failed to resolve 'host.docker.internal'
原因
host.docker.internal 是 Docker 提供的一个特殊 DNS 名称,用于从容器内部访问宿主机(也就是运行 Docker 的那台机器)上的服务(比如本地数据库、API 接口等)。
但它 不是在所有平台都默认支持:
✅ Docker Desktop(Mac / Windows):默认支持 host.docker.internal
❌ Linux 上的 Docker Engine(如 Ubuntu、CentOS):默认不支持,必须手动配置
处理
两种处理方式
docker run:
添加配置
--add-host=host.docker.internal:host-gateway
示例:
docker run \
--add-host=host.docker.internal:host-gateway \
your-java-image
docker-compose配置:
添加配置:
extra_hosts:
- "host.docker.internal:host-gateway"
示例:
services:
your-java-app:
image: your-java-image
extra_hosts:
- "host.docker.internal:host-gateway"
文章作者:Nick
版权声明:本博客所有文章除特别声明外,均采用CC BY-NC-SA 4.0 许可协议,转载请注明出处!
评论