破解Docker镜像拉取难题:为Docker配置代理加速镜像拉取

news/2025/2/23 19:30:16

为Docker配置代理加速镜像拉取

  • 概述
  • 守护进程配置(推荐长期使用)
  • Systemd环境变量配置(适合临时调整)
  • 其他

概述

为什么需要配置代理与镜像加速?

跨国网络限制:境外镜像仓库拉取速度慢或无法访问

企业安全策略:通过统一代理服务器进行网络审计和管控

两种代理配置方式对比

配置方式生效范围持久性适用场景
daemon.json守护进程级别永久生效固定代理服务器
Systemd环境变量系统服务级别需reload动态调整代理设置

参考官方文档:Daemon proxy configuration

守护进程配置(推荐长期使用)

编辑vim /etc/docker/daemon.json进行配置

{
  "proxies": {
    "http-proxy": "http://192.168.1.1:7890",
    "https-proxy": "http://192.168.1.1:7890",
    "no-proxy": "localhost,127.0.0.1,*.test.example.com"
  }
  "registry-mirrors": ["https://registry.docker-cn.com"]
}

重新启动守护进程以使代理配置生效

# 重载配置并重启服务
sudo systemctl daemon-reload
sudo systemctl restart docker

# 验证配置
docker info | grep -i proxy

Systemd环境变量配置(适合临时调整)

Docker守护进程会在启动环境中检查以下环境变量,以配置 HTTP 或 HTTPS 代理行为:

HTTP_PROXY

HTTPS_PROXY

NO_PROXY

创建一个名为/etc/systemd/system/docker.service.d的目录,这种.d目录下的配置将覆盖默认配置

 mkdir -p /etc/systemd/system/docker.service.d

创建一个名为/etc/systemd/system/docker.service.d/http-proxy.conf的文件

vim /etc/systemd/system/docker.service.d/proxy.conf

添加HTTP_PROXY环境变量

[Service]
Environment="HTTP_PROXY=http://192.168.1.1:7890/"
Environment="HTTPS_PROXY=http://192.168.1.1:7890/"
# 如果`NO_PROXY=*`,那么所有请求都将不通过代理服务器,如指定本地私有的镜像仓库地址
Environment="NO_PROXY=127.0.0.1,localhost,192.168.*,*.example.com"

重新加载配置文件,重启 Dockerd 才能生效

systemctl daemon-reload

systemctl restart docker

验证环境变量,确认环境变量已经正确配置

systemctl show --property=Environment docker

docker info的结果中也可以查看到配置项

# docker info
Docker Root Dir: /var/lib/docker
 Debug Mode: false
 HTTP Proxy: http://192.168.1.1:7890
 HTTPS Proxy: http://192.168.1.1:7890
 No Proxy: 127.0.0.1,localhost
 Experimental: false

注意:

若需身份验证,使用http://用户名:密码@代理IP:端口格式

临时禁用代理

# 临时禁用代理
sudo systemctl set-environment HTTP_PROXY=""
sudo systemctl restart docker

# 查看实时日志
journalctl -u docker.service -f

其他

代理连通性测试

curl -v -x http://proxy:port https://registry.hub.docker.com

参数说明

-v 参数
	作用:开启详细模式(verbose)
	
-x 参数
	全称:--proxy
	格式:[协议://]主机:端口

示例:

# curl -v --proxy http://192.168.1.10:7890 https://registry.hub.docker.com
*   Trying 192.168.1.10:7890...
* Connected to 192.168.1.10 (192.168.1.10) port 7890
* CONNECT tunnel: HTTP/1.1 negotiated
* allocate connect buffer
* Establish HTTP proxy tunnel to registry.hub.docker.com:443
> CONNECT registry.hub.docker.com:443 HTTP/1.1
> Host: registry.hub.docker.com:443
> User-Agent: curl/8.5.0
> Proxy-Connection: Keep-Alive
> 
< HTTP/1.1 200 Connection established
<

代理认证测试

curl -v -x http://user:password@ip:port https://registry.hub.docker.com

绕过代理测试

# curl -v --noproxy '*' https://registry.hub.docker.com
* Host registry.hub.docker.com:443 was resolved.
* IPv6: (none)
* IPv4: 31.13.95.37
*   Trying 31.13.95.37:443...

http://www.niftyadmin.cn/n/5863703.html

相关文章

计算机专业知识【揭开汇编的神秘面纱:从基础概念到实际应用】

在计算机编程的广阔领域中&#xff0c;汇编语言扮演着独特而重要的角色。对于刚接触编程的小白来说&#xff0c;汇编可能听起来有些神秘。下面我们就来全面了解一下汇编是什么。 一、汇编的基本定义 汇编语言&#xff08;Assembly Language&#xff09;是一种低级程序设计语言…

Pytorch实现之GIEGAN(生成器信息增强GAN)训练自己的数据集

简介 简介:在训练数据样本之前首先利用VAE来推断潜在空间中不同类的分布,用于后续的训练,并使用它来初始化GAN。与ACGAN和BAGAN不同的是,提出的GIEGAN有一个分类器结构,这个分类器主要判断生成的图像或者样本图像属于哪个类,而鉴别器仅判断图像是来自于生成器还是真实样…

使用 C++ 和 gRPC 的常见陷阱及解决方案

文章目录 1. 环境配置的陷阱1.1 依赖版本冲突或混淆1.2 gRPC 工具缺失 2. 编译和链接的陷阱2.1 运行时库不匹配&#xff08;/MT vs /MD&#xff09;2.2 未解析的外部符号 3. Protobuf 文件生成的陷阱3.1 工具版本不匹配3.2 生成文件运行时库不一致 4. 运行时的陷阱4.1 缺少 DLL…

Maven 基础环境搭建与配置(一)

一、Maven 初印象 在 Java 开发的广袤天地里&#xff0c;Maven 就像是一位神通广大的 “大管家”&#xff0c;为开发者们排忧解难&#xff0c;让项目管理与构建变得轻松高效。它是一个强大的项目管理和构建自动化工具&#xff0c;基于项目对象模型&#xff08;POM&#xff09;…

Steam回退游戏版本

Steam回退游戏版本 首先需要在浏览器输入以下代码进入Steam控制台 steam://open/console控制台输入 download_depot {AppID} {DepotsID} {ManifestId}下载完成后,进入下载回退文件目录,复制所有文件到游戏目录 恢复到最新版本: Steam右键游戏-属性-已安装文件-验证游戏完整性…

react 踩坑记 too many re-renders.

报错信息&#xff1a; too many re-renders. React limits the number of randers to prevent an infinite loop. 需求 tabs只有特定标签页才展示某些按钮 button要用 传递函数引用方式 ()>{} *还有要注意子组件内loading触发 导致的重复渲染

基于Springboot学生宿舍水电信息管理系统【附源码】

基于Springboot学生宿舍水电信息管理系统 效果如下&#xff1a; 系统登陆页面 系统用户首页 用电信息页面 公告信息页面 管理员主页面 用水信息管理页面 公告信息页面 用户用电统计页面 研究背景 随着高校后勤管理信息化的不断推进&#xff0c;学生宿舍水电管理作为高校后勤…

ZT8 小红的字符生成

描述 小红每次可以把一个字符变成两个字母表中比它小一位的字符。例如&#xff0c;可以把b变成两个a&#xff0c;可以把z变成两个y。 小红希望最终可以生成 x 个a&#xff0c;你能帮小红求出初始的字符串吗&#xff1f;请你输出长度最短的合法字符串&#xff0c;有多解时输出任…