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

为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...

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/973085.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

文件和目录的操作-8

文章目录 1.IO流2.文件流操作with语句3.文件和文件夹的操作4.案例1.IO流 通过“流”的形式允许计算机程序使用相同的方式来访问不同的输入/输出源。stream是从源(source)到接收目标的(sink)有序数据。如果把输入/输出源比作“水桶”,那流就是“管道” 文件流:就是源或者…

EasyRTC:轻量化SDK赋能嵌入式设备,开启智能硬件音视频通讯新篇章

在智能硬件与物联网飞速发展的今天&#xff0c;嵌入式设备的音视频通讯能力正变得愈发重要。然而&#xff0c;受限于硬件资源&#xff0c;尤其是Flash存储空间的不足&#xff0c;传统音视频通讯方案往往难以在嵌入式设备上实现高效集成。EasyRTC凭借其轻量级SDK和先进的技术架构…

处理哈希冲突

有时候哈希表⽆论选择什么哈希函数都⽆法避免冲突&#xff0c;那么插⼊数据时&#xff0c;如何解决冲突呢&#xff1f;主要两种⽅法&#xff0c;线性探测法和链地址法&#xff0c;这篇先做原理描述&#xff0c;下篇实现代码模拟 一、线性探测 发生冲突的位置开始&#xff0c;依…

安装MySQL9.1.0-winx64.msi的报错解决办法:Database initialization failed。(也适用9.2.0)

csdn上有很多关于安装MySQL9.1.0-winx64.msi的报错&#xff08;Database initialization failed&#xff09;的解决办法&#xff0c;根据报错log便签内容总结一下有以下几种&#xff1a; 1、电脑名称有中文的&#xff0c;参考这篇&#xff1a; 【MySQL】Windows上安装MySQL时…

聊一聊vue如何实现角色权限的控制的

大家好&#xff0c;我是G探险者。 关于角色与权限控制&#xff0c;通常是分为两大类&#xff1a;一种是菜单权限&#xff1b;一种是操作权限。 菜单权限是指&#xff0c;每个角色对应着可以看到哪些菜单&#xff0c;至于每个菜单里面的每个按钮&#xff0c;比如增删改查等等这类…

使用 OpenTelemetry 和 Langtrace 的 Elastic 分发跟踪基于 RAG 的聊天机器人

作者&#xff1a;来自 Elastic Bahubali Shetti 如何使用 Elastic 观察基于 OpenAI RAG 的应用程序。使用 Langtrace 对应用程序进行检测&#xff0c;收集日志、跟踪、指标&#xff0c;并了解 LLM 在 Kubernetes 上使用 OpenTelemetry 的 Elastic Distributions 的运行情况。 目…

掌握.NET Core后端发布流程,如何部署后端应用?

无论你是刚接触.NET Core的新手还是已有经验的开发者&#xff0c;在这篇文章中你将会学习到一系列实用的发布技巧与最佳实践&#xff0c;帮助你高效顺利地将.NET Core后端应用部署到生产环境中 目录 程序发布操作 Docker容器注册表 文件夹发布 导入配置文件 网站运行操作 …

VSCode配置C/C++开发环境|最新教程202502

&#x1f4e2; ‌Windows版VSCode配置C/C开发环境&#xff08;单文件多文件全解析&#xff09;‌ 一、 ‌环境准备‌ ✅‌必需工具‌&#xff1a;Visual Studio Code 2025‌ ✅扩展插件‌&#xff1a;C/C&#xff08;Microsoft官方扩展&#xff09;&#x1f4e2; 这个必须安…

小米AX3000T 路由器如何开启 SSH 安装 OpenWRT 系统,不需要降级 v1.0.91 (2025)

小米AX3000T 路由器如何开启 SSH 安装 OpenWRT 系统&#xff0c;不需要降级 v1.0.91 &#xff08;2025&#xff09; 本文内容需要你有一定的 Linux 操作基础&#xff0c;最好是程序员那种&#xff0c;英文水平足够用才行。一般人不需要使用这么复杂的路由器操作系统&#xff0c…

2025最新智能优化算法:改进型雪雁算法(Improved Snow Geese Algorithm, ISGA)求解23个经典函数测试集,MATLAB

一、改进型雪雁算法 雪雁算法&#xff08;Snow Geese Algorithm&#xff0c;SGA&#xff09;是2024年提出的一种新型元启发式算法&#xff0c;其灵感来源于雪雁的迁徙行为&#xff0c;特别是它们在迁徙过程中形成的独特“人字形”和“直线”飞行模式。该算法通过模拟雪雁的飞行…

【从0做项目】Java文档搜索引擎(9)烧脑终章!

阿华代码&#xff0c;不是逆风&#xff0c;就是我疯 你们的点赞收藏是我前进最大的动力&#xff01;&#xff01; 希望本文内容能够帮助到你&#xff01;&#xff01; 文章导读 阿华将发布项目复盘系列的文章&#xff0c;旨在&#xff1a; 1&#xff1a;手把手细致带大家从0到…

cs106x-lecture12(Autumn 2017)-SPL实现

打卡cs106x(Autumn 2017)-lecture12 (以下皆使用SPL实现&#xff0c;非STL库&#xff0c;后续课程结束会使用STL实现) travel Write a recursive function named travel that accepts integers x and y as parameters and uses recursive backtracking to print all solution…

vue取消全选功能按钮注意事项

这里这个功能是通过各种条件查出数据,但只取一条数据进行后续业务,虽然每一条数据前面都有多选框,但只需要选一个,所以在业务上分析可以把这个全选按钮取消掉 这里不是简单的把多选组件的selection-change"handleSelectionChange"和handleSelectionChange方法去掉,因…

三维扫描仪:如何快速获取产品外部结构尺寸?

在精密制造与质量控制领域&#xff0c;传统测量方法因接触式检测效率低、数据维度单一等问题&#xff0c;正面临数字化升级的迫切需求。 传统测量方法的局限性&#xff1a; 传统的测量工具&#xff0c;如卡尺、千分尺和三坐标测量仪&#xff0c;虽然在精度上有一定的保证&…

无人机避障——感知篇(采用Livox-Mid360激光雷达获取点云数据显示)

电脑配置&#xff1a;Xavier-nx、ubuntu 18.04、ros melodic 激光雷达&#xff1a;Livox_Mid-360 1、安装激光雷达驱动 下载安装Livox-SDK2 如果git clone不了&#xff0c;在github上下载相应的zip进行手动安装&#xff0c;安装网址如下&#xff1a; https://github.com/L…

ubuntu22.04使用minikube安装k8s

ubuntu使用minikube安装k8s 准备工作安装步骤安装docker安装kubectl安装minikube导入相关镜像安装相关指令启动minikube服务 安装dashboard组件导入相关镜像创建服务账号安装组件本体验证安装结果 准备工作 下载离线安装包&#xff0c;安装包内容如下&#xff1a; 软件说明ki…

西门子1200下载、上传程序。

下载 第一种 直接点击图标下载&#xff0c;此种方式PLC会停机。 第二种 这三种的区别&#xff1a; 上传 创建新的项目。

基于Openlayers对GeoServer发布的数据进行增删改

使用GeoServer进行图斑数据管理 本文将介绍如何使用GeoServer进行图斑数据的新增、删除和修改。我们将通过一个Vue.js应用来演示这些功能。 设置Vue.js应用 首先&#xff0c;我们设置Vue.js应用&#xff0c;并添加必要的组件和交互逻辑。 Check.vue Check.vue文件包含初始…

自动化之ansible(二)

一、ansible中playbook&#xff08;剧本&#xff09; 官方文档&#xff1a; Ansible playbooks — Ansible Community Documentation 1、playbook的基本结构 一个基本的playbook由以下几个主要部分组成 hosts: 定义要执行任务的主机组或主机。 become: 是否需要使用超级用户…

函数执行中的栈和寄存器调用

函数执行中的栈和寄存器调用 函数执行过程中主要用到的寄存器有程序计数器和栈指针。 程序计数器&#xff08;IP&#xff09;&#xff1a;指向下一条执行指令的地址&#xff0c;其值用%rip来表示 栈指针&#xff1a;指向栈顶地址&#xff0c;其值用%rsp来表示 当过程P调用过…