如何使用通配符设置docker的NO_PROXY

2023-12-23

正如 docker 官方文档中提到的here https://docs.docker.com/config/daemon/systemd/#configure-where-the-docker-daemon-listens-for-connections,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-registry.somecorporation.com"

但是,docker的下载涉及到很多url重定向。所以我在这里的设定中几乎没有一一说出他们的名字。

所以我的问题是有没有什么方法可以实现通配符,例如*.docker.io。

谢谢, 叉


我知道这是几年前的问题,但我想这仍然是开发人员的常见问题,我认为它没有得到正确的回答。

关于 @Kaneg 批准的答案,实际上是一个领先的.在大多数情况下都会起作用......但并非总是如此。

因此,我写下这个答案是为了防止将来有更多的人遇到这个问题。


首先,我们必须牢记的是,著名的NO_PROXY是大多数 Web 客户端在使用 Web 代理服务器时接受的环境变量,但没有关于如何定义它或每个客户端应如何处理这些变量的标准。

当我们在 Docker 中将这些设置为环境变量时,我们只是强制将来创建的所有容器使用这些环境变量,它们也将用于 Docker(例如从官方注册表下载镜像) )。无论如何,真正的问题取决于我们在这些容器内有什么,因为这才是要求变得严格的地方。

为了最大限度地简化这个过程,我从亚搏体育appGitLab博客 https://about.gitlab.com/blog/2021/01/27/we-need-to-talk-no-proxy/(谢谢胡彦斌):

curl wget Ruby Python Go
no_proxy Yes Yes Yes Yes Yes
NO_PROXY Yes No Yes Yes Yes
Case precedence lowercase lowercase only lowercase lowercase lowercase
Matches suffixes? Yes Yes Yes Yes Yes
Strips leading .? Yes No Yes Yes No
* maches all hosts? Yes No No Yes Yes
Supports regexes? No No No No No
Supports CIDR blocks? No No Yes No Yes
Detects loopbacks IPs? No No No No Yes
Reference link https://github.com/curl/curl/blob/30e7641d7d2eb46c0b67c0c495a0ea7e52333ee2/lib/url.c#L2152-L2206 link https://github.com/jay/wget/blob/099d8ee3da3a6eea5635581ae517035165f400a5/src/retr.c#L1266-L1274 link https://github.com/ruby/ruby/blob/0ed71b37fa9af134fdd5a7fd1cebd171eba83541/lib/uri/generic.rb#L1545-L1554 link https://github.com/python/cpython/blob/030a713183084594659aefd77b76fe30178e23c8/Lib/urllib/request.py#L2519-L2551 link https://github.com/golang/go/blob/682a1d2176b02337460aeede0ff9e49429525195/src/vendor/golang.org/x/net/http/httpproxy/proxy.go#L170-L206

这是什么意思?

如果我们只是遵循设置领先的逻辑. in the NO_PROXY,首先,像这样的工具无法理解这个wget,所以它们无论如何都会通过代理;如果我们设置领先. as no_proxy still curl总是会剥夺领先的.同时wget不会剥离它,并将对主机名执行精确的字符串匹配。

Solution

后缀总是匹配的,所以最好的解决方案是设置docker.io因为它将包括whatever.docker.io。尽量避免使用前导点 (.) 如果在每种情况下都需要匹配顶级域。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用通配符设置docker的NO_PROXY 的相关文章

随机推荐

  • 检查 UIWebView 是否已加载

    我在一个选项卡中有一个 UIWebView 可以在 viewDidLoad 中加载 但是如果用户点击其他选项卡 加载将会中断 并且 void webView UIWebView webView didFailLoadWithError NS
  • 如何发现无意的对象指针比较?

    快速问题 有没有一个好的方法来找到用途 用对象代替isEqual 完整故事 我有一堆类似这样的代码 typedef long DataKey DataKey x DataKey y if x y do stuff 我现在需要更换使用long
  • 如何让盒子始终具有相同的宽度

    这里我必须装箱 看起来像这样 div class dataViewBox div class dataViewBox Download div class dataViewBox DownloadLink span class dataVi
  • MongoDB:检查嵌套数组是否包含子数组

    我有一个数据库建模如下的用例 name XYZ gradeCards id 1234 id of the report card comments GOOD NICE WOW id 2345 comments GOOD NICE TRY 现
  • select2-rails gem 不适用于 Rails4

    我已经尝试过给出的文档select2 rails 宝石 https github com argerim select2 rails 但我的浏览器控制台仍然抛出错误 未捕获的类型错误 select2 不是函数 我在用rails 4 0 1
  • System.IO.Compression.ZipFile .NET 4.5 输出 zip 不适合 Linux/Mac/Java

    使用 NET时System IO Compression ZipFile CreateFromDirectory类结果 zip 在带有正斜杠目录分隔符的系统上被严重提取 原因 zip 名称中包含反斜杠 为了解决这个问题 有一个解决方法 cl
  • Xcode - iPhone - 配置文件与默认钥匙串中的任何有效证书/私钥对不匹配

    我尝试将我的 iPhone 添加到 Xcode4 来测试我的应用程序 我在 Apple Developer Center 中添加了设备并下载了 Provision Profile 我们每月为该帐户支付 99 美元 而且我不是唯一使用该帐户的
  • 如何生成“粗”的贝塞尔曲线?

    我正在寻找一种通过 加厚 贝塞尔曲线以编程方式生成多边形的方法 像这样的东西 我最初的想法是找到直线中的法线 并从中生成多边形 但问题是法线可能会以陡峭的曲线相互交叉 如下所示 是否有任何公式或算法可以从贝塞尔曲线生成多边形 我在互联网上找
  • 如何在 Kotlin 中获取具体化泛型参数的实际类型参数?

    Using 具体化类型参数 https kotlinlang org docs reference inline functions html reified type parameters 可以编写一个内联函数 在运行时通过反射来处理类型
  • java中正十进制值和负十进制值的正则表达式

    负十进制值和正十进制值的正则表达式 以便可以 使用模式和匹配器与字符串匹配以获得正确的实现 谁能给我提供一下吗 0 9 0 9
  • RMI 连接在本地主机上被拒绝

    我正在尝试学习 RMI 编码 当我运行 RMI 的服务器端时 连接被拒绝 这是我的服务器主要方法 public static void main String args throws Exception Implementation imp
  • 如何绑定到 SwiftUI 中可选的数据

    我很好奇 我们如何指定对属于可选部分的状态数据的绑定 例如 struct NameRecord var name var isFunny false class AppData ObservableObject Published var
  • 使用 SSZipArchive 解压缩文件 - Swift

    我正在尝试使用 SSZipArchive 框架解压缩文件 let unzipper SSZipArchive unzipFileAtPath String document toDestination String documentsUrl
  • PyQt 打印原始 PDF

    假设我有一个test pdf文件在当前目录中 我想使用以下命令将此原始文件发送到打印机PyQt 图形用户界面打印机 下面的Python3代码打印PDF源代码 我不希望 Qt 为我构建 PDF 而只是使用 gui 对话框将其发送到打印机 这应
  • NVidia CUDA 工具包 7.5.27 无法在 OS X 上安装

    下载 CUDA 工具包 DMG 可以工作 但安装程序在选择软件包后失败 并出现神秘的 软件包清单解析错误 错误 使用内部二进制文件从命令行运行安装程序也会以类似的方式失败 var log cuda installer log 处的日志文件基
  • JavaScript 数组问题

    好的 我只是回顾一下 JavaScript 中的一些基本编程原则 我是编程新手 所以请耐心等待 下面是我遇到问题的代码 特别注意数组的字符串组件 var name new Array var sales new Array var tota
  • 如何突出显示列中非空白的重复项?

    我想突出显示 I 列中连接字符串的所有重复项 并在突出显示任何重复项时提供错误消息 但是 该列中有几个空白单元格 我不希望在运行宏时这些单元格显示为重复项 我从这里得到了这个代码 Sub HighlightDuplicateValues D
  • 没有编译器优化的 SSE 内在函数

    我是 SSE 内在函数的新手 并尝试通过它来优化我的代码 这是我的程序 用于计算等于给定值的数组元素 我将代码更改为 SSE 版本 但速度几乎没有改变 我想知道我是否以错误的方式使用SSE 此代码用于不允许我们启用编译器优化选项的分配 无
  • 当从 C# 程序中反序列化 JSON 时,我是否需要使用 JavaScriptSerializer 以外的任何东西?

    NET 中提供了 JavaScriptSerializer 类 System Web Script Serialization 命名空间 在 System Web Extensions dll 中提供 它最初旨在支持 AJAX Web 服务
  • 如何使用通配符设置docker的NO_PROXY

    正如 docker 官方文档中提到的here https docs docker com config daemon systemd configure where the docker daemon listens for connect