Docker配置NO_PROXY后访问registry.cn-shenzhen.aliyuncs.com仍走代理如何解决
问题根因
你配置的NO_PROXY规则*.registry.cn-shenzhen.aliyuncs.com属于子域名通配匹配规则,仅能匹配类似xxx.registry.cn-shenzhen.aliyuncs.com的子域名,无法匹配没有子域名前缀的根域名registry.cn-shenzhen.aliyuncs.com,因此请求还是会走代理。
解决步骤
- 第一步:创建/编辑Docker的systemd代理配置文件
执行命令创建配置目录(如果不存在):
编辑代理配置文件:mkdir -p /etc/systemd/system/docker.service.d
修改vi /etc/systemd/system/docker.service.d/http-proxy.confNO_PROXY配置项,添加不带通配符的根域名,示例配置如下:[Service] Environment="HTTP_PROXY=socket5://127.0.0.1:7890" Environment="HTTPS_PROXY=http://127.0.0.1:7890" Environment="NO_PROXY=localhost,127.0.0.1,192.168.93.0,registry.cn-shenzhen.aliyuncs.com,*.registry.cn-shenzhen.aliyuncs.com" - 第二步:重载systemd配置并重启Docker
执行命令重载systemd守护进程配置:
重启Docker服务让配置生效:systemctl daemon-reloadsystemctl restart docker - 第三步:验证配置生效
执行命令检查Docker环境变量是否更新:
确认输出的systemctl show --property=Environment dockerNO_PROXY中已经包含registry.cn-shenzhen.aliyuncs.com后,重新执行docker login命令即可正常登录。
内容的提问来源于stack exchange,提问作者will
相关产品推荐
相关产品推荐

