clash代理docker实现镜像拉取

clash,docker · 浏览次数 : 1

小编点评

前言 近期,不少国内镜像源突然无法使用,且缺乏具体说明。本文将通过排查和解决过程中遇到的问题,为读者提供一份详细的操作指南。 解决方法 1. 检查并更新Docker配置 根据官方文档,可在systemd配置文件或daemon.json文件中配置HTTP_PROXY和HTTPS_PROXY。笔者在尝试多次配置后发现,将Docker升级至最新版26.1.4后可正常配置代理。 编辑/etc/docker/daemon.json文件,添加以下内容: ``` { "proxies": { "http-proxy": "http://192.168.1.106:7890", "https-proxy": "http://192.168.1.106:7890" } } ``` 其中,192.168.1.106:7890为您的局域网代理服务器地址,请替换为实际地址。 2. 保存配置文件并重启Docker 使用以下命令保存配置并重启Docker: ``` sudo systemctl daemon-reload sudo systemctl restart docker ``` 3. 验证镜像拉取 运行以下命令验证镜像是否能正常拉取: ``` docker pull nginx ``` 若配置正确,您将成功拉取nginx镜像。 总结 通过本文的排查和解决过程,我们成功地解决了因网络原因导致的国内镜像源无法使用的问题。建议受影响的用户根据本文提供的方法进行操作,以确保Docker能正常访问国内镜像源并拉取所需镜像。

正文

前言

前段时间不少国内镜像源都突然莫名其妙不能用了,也没个具体说明,我等草民只能胡思乱猜。翻了翻docker的官方文档,倒腾了下clash代理docker,基本也能正常拉取镜像。

参考官方文档:https://docs.docker.com/config/daemon/systemd/#httphttps-proxy

效果图, clash for windows的截图,可以看到clash已经代理了docker的请求。因为房东的网不太行,看起来网速一般,但能拉取到就算是成功吧。

步骤

一开始我的虚拟机里面docker版本是20,在systemd配置文件中按照官方文档试了几次配置HTTP_PROXYHTTPS_PROXY都不行。因为官方文档说在23版本之后支持在daemon.json文件中配置代理,所以最后试了下升级docker到最新版的26.1.4,结果一次试成功。可能是版本问题,也可能是配置问题。因为已经试通了,所以就没再多试了,感兴趣的话可以自行尝试。

  1. 更新docker版本。虚拟机中的docker是用二进制包安装的,所以从官网下载最新版的docker压缩包后,解压覆盖重启即可。
  2. 编辑/etc/docker/daemon.json,添加以下内容。其中192.168.1.106:7890是我局域网中的代理服务器地址,需要修改为自己的代理服务器地址。因为代理服务器不支持https协议代理,所以https_proxy也是用http协议。
{
	"proxies": {
        "http-proxy": "http://192.168.1.106:7890",
        "https-proxy": "http://192.168.1.106:7890"
    }
}
  1. 加载systemd配置并重启docker
sudo systemctl daemon-reload
sudo systemctl restart docker
  1. 拉取镜像测试。
docker pull nginx

与clash代理docker实现镜像拉取相似的内容:

clash代理docker实现镜像拉取

前言 前段时间不少国内镜像源都突然莫名其妙不能用了,也没个具体说明,我等草民只能胡思乱猜。翻了翻docker的官方文档,倒腾了下clash代理docker,基本也能正常拉取镜像。 参考官方文档:https://docs.docker.com/config/daemon/systemd/#httpht

设计模式:代理模式详解

需求场景 按着惯例,还是以一个应用场景作为代理模式的切入点。现在有一个订单系统,要求是:一旦订单被创建,只有订单的创建人才可以修改订单中的数据,其他人则不能修改。 基本实现思路 按着最直白的思路,就是查询数据库中订单的创建人和当前Session中的登录账号ID是否一致。 class Order {

Python常见面试题006 类方法、类实例方法、静态方法有何区别?

006. Python中类方法、类实例方法、静态方法有何区别? 全部放一个里面篇幅过大了,就拆分成1个个发布 示例代码 class Human: def __init__(self, name): self.name = name def say(self): print(f'我的名字是{self.

[Android 逆向]Xposed 破解 切水果大战原版.apk

代码 public class Main implements IXposedHookLoadPackage { boolean flag = false; @Override public void handleLoadPackage(XC_LoadPackage.LoadPackageParam

定义一个类,在实例化的时候,抛出NameError异常

代码1:class cla: def __init__(self): #raise NameError # 抛出异常 print(r) cla() 运行截图:

[转帖]Linux kill & Java shutdownhook

https://www.jianshu.com/p/8001a66d37c9 shutdown-hook 建议加上shutdown的钩子 如果程序出现了内存溢出crash 则现在代码是没有任何保护措施的 或者说运维不小心关闭了服务器等 或者运维不小心kill了游戏服务器进程等 无法避免kill -9

(工厂+策略)实现登录功能

原始代码 业务层UserService @Service public class UserService { public LoginResp login(LoginReq loginReq){ if(loginReq.getType().equals("account")){ System.ou

Biwen.QuickApi代码生成器功能上线

[QuickApi("hello/world")] public class MyApi : BaseQuickApi{} 使用方式 : dotnet add package Biwen.QuickApi dotnet add package Biwen.QuickApi.Sour

[转帖]使用 Crash 工具分析 Linux dump 文件

前言 Linux 内核(以下简称内核)是一个不与特定进程相关的功能集合,内核的代码很难轻易的在调试器中执行和跟踪。开发者认为,内核如果发生了错误,就不应该继续运行。因此内核发生错误时,它的行为通常被设定为系统崩溃,机器重启。基于动态存储器的电气特性,机器重启后,上次错误发生时的现场会遭到破坏,这使得

什么是 Java 字节码?采用字节码的好处是什么?

在 Java 中,JVM 可以理解的代码就叫做字节码(即扩展名为 .class 的文件),它不面向任何特定的处理器,只面向虚拟机。Java 语言通过字节码的方式,在一定程度上解决了传统解释型语言执行效率低的问题,同时又保留了解释型语言可移植的特点。所以, Java 程序运行时相对来说还是高效的(不过