在Docker中运行grpcurl时出现域名解析失败错误求助
解决Docker中grpcurl无法解析api.grpc.me的问题
出现Failed to dial target host "api.grpc.me:443": dial tcp: lookup api.grpc.me on 192.168.65.7:53: no such host错误,核心是Docker容器内无法解析api.grpc.me域名,可按以下步骤排查解决:
确认域名有效性
在宿主机终端执行nslookup api.grpc.me或ping api.grpc.me,如果宿主机也无法解析该域名,说明要么是域名拼写错误,要么是该域名已被移除/失效,先核对域名正确性。更换容器DNS服务器
Docker默认使用宿主机DNS配置,若默认DNS无法解析目标域名,可手动指定公共DNS(比如Google的8.8.8.8)重新运行命令:docker run --dns 8.8.8.8 fullstorydev/grpcurl api.grpc.me:443 list验证容器网络连通性
先确认容器能正常访问外网,运行测试容器:docker run --rm alpine ping -c 3 google.com如果连google.com都无法访问,说明Docker网络存在问题,需排查宿主机防火墙、代理设置或Docker网络配置。
检查Docker全局DNS配置
查看容器默认DNS配置:docker run --rm alpine cat /etc/resolv.conf若DNS服务器地址异常,可编辑
/etc/docker/daemon.json添加公共DNS:{ "dns": ["8.8.8.8", "8.8.4.4"] }然后重启Docker服务:
systemctl restart docker
内容的提问来源于stack exchange,提问作者Rafael
相关产品推荐
相关产品推荐

