You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Docker的NO_PROXY配置通配符?

Docker代理配置中NO_PROXY通配符的实现方案

这个问题确实挺头疼的——Docker镜像下载涉及大量重定向,逐个指定域名根本不现实。好在针对NO_PROXY的通配符需求,我们有几种可行的方案,取决于你的系统环境:

1. 现代systemd版本(240+):直接使用通配符

如果你的系统运行的是systemd 240或更高版本,它原生支持NO_PROXY中的通配符格式(比如*.docker.io)。你可以直接修改Docker的代理配置文件:

  • 编辑/etc/systemd/system/docker.service.d/https-proxy.conf,写入以下内容:
[Service]
Environment="HTTPS_PROXY=https://proxy.example.com:443/" "NO_PROXY=localhost,127.0.0.1,*.docker.io"
  • 重新加载systemd配置并重启Docker服务:
sudo systemctl daemon-reload
sudo systemctl restart docker

这是最简洁的官方推荐方案,能覆盖所有docker.io的子域名请求。

2. 旧版本systemd:使用域名后缀匹配

如果你的systemd版本低于240,通配符*.docker.io可能无法生效,但可以用域名后缀匹配(直接写.docker.io)——大部分HTTP客户端会自动将其识别为所有该域名后缀的子域名:

[Service]
Environment="HTTPS_PROXY=https://proxy.example.com:443/" "NO_PROXY=localhost,127.0.0.1,.docker.io"

这种写法不需要通配符,却能达到和*.docker.io几乎一样的效果,兼容多数旧系统。

3. 验证配置是否生效

修改完成后,你可以通过以下命令检查Docker是否正确加载了代理配置:

docker info | grep -i proxy

输出中应该能看到你配置的HTTPS_PROXY和NO_PROXY参数,确认通配符/后缀是否正确显示。

如果遇到个别特殊重定向还是走了代理,也可以直接把Docker官方仓库的已知域名(比如registry-1.docker.io、index.docker.io)添加到NO_PROXY里作为兜底,但通配符/后缀匹配的方式显然更省心。

内容的提问来源于stack exchange,提问作者Cross

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 04:14:44