docker daemon.json 中需用大小写敏感的"noproxy"字符串字段配置代理豁免,支持域名、ip、cidr等格式,修改后须重启docker生效。
在 /etc/docker/daemon.json 中配置默认代理并设置 bypass(即跳过代理的地址),关键在于正确使用 "noproxy" 字段,它定义哪些请求不走代理。
noProxy 字段支持的格式
"noProxy" 是字符串,多个值用英文逗号分隔,支持以下类型:
- 纯域名:如
localhost、registry.internal - 带点前缀的域名:如
.example.com(匹配api.example.com、www.example.com) - IP 地址:如
127.0.0.1、192.168.1.100 - CIDR 网段:如
10.0.0.0/8、172.16.0.0/12、192.168.0.0/16 - IPv6 地址和网段:如
::1、fd00::/8
典型配置示例
以下是一个兼顾安全性与实用性的 daemon.json 片段:
{
"proxies": {
"default": {
"httpProxy": "http://127.0.0.1:7890",
"httpsProxy": "http://127.0.0.1:7890",
"noProxy": "localhost,127.0.0.1,::1,.local,.lan,10.0.0.0/8,192.168.0.0/16,172.16.0.0/12"
}
}
}
说明:
使用 JSON Schema 验证 JSON 数据,从示例 JSON 生成 schema,并将其转换为 TypeScript 接口、Python 数据类或 Markdown 文档。
-
localhost、127.0.0.1、::1确保本地服务直连 -
.local和.lan覆盖常见内网域名后缀 - 三大私有网段覆盖绝大多数局域网环境
注意事项
配置时需特别注意:
- 字段名是
"noProxy"(不是noproxy或NO_PROXY),大小写敏感 - 值必须是字符串,不能是数组;空格会被当作值的一部分,建议不要加空格
- 如果同时配置了镜像加速器(
registry-mirrors),它们默认也不走代理,但显式加入noProxy更稳妥 - 修改后必须重启 Docker 才生效:
sudo systemctl restart docker - 验证是否生效:
docker info | grep -A 3 "No Proxy",输出应包含你设置的值
常见 bypass 需求场景
根据实际网络环境,可针对性补充:
- 公司内部 registry:如
registry.company.local或.company.internal - Kubernetes API Server:如
kubernetes.default.svc(容器内访问) - 自建 Harbor/Nexus:如
harbor.example.com - Docker Desktop 的 WSL2 内部通信:加上
host.docker.internal










