简易 Docker Hub 加速服务

2024-06-09 ⏳2.1分钟(0.8千字) 🕸️

最近网上传言说相关部门已经通知,要关闭所有中国大陆的 Docker Hub 镜像站。而且像是上海交大、中科大的镜像站均已停止服务。但 Docker Hub 现在几乎成了云原生时代的基础设施,不用又不行。那要怎样才能顺畅地访问 Docker Hub 呢?

下架 Docker Hub 镜像通知

最简便的办法是用梯子🪜但 Docker 实在在太特殊了,越是初学者用得越是多,因为用它来搭建学习环境是为方便。初学者不像老鸟,不一定有梯子,就算有梯子也不见得稳定。为此,我把自用的 Docker Hub 加速服务分享出来1,希望能帮到大家。

加速服务网站为 https://docker.lehu.in。该站部署在一台 DMIT 的服务器上,网络为中国电信的 CN2-GIA 线路,算是美国西部比较好的线路了。服务器的网口带宽为 2Gbps,虽然是与其他 VPS 共享,但也不可能一直都跑满,平时用它来下载 Docker 镜像应该是绰绰有余了。

为了能提供稳定的服务,该加速器需要付费使用。服务器本身也有不小的成本,而且每个月的流量也有限。优质的服务只能提供给真正有需要的朋友。目前提供三种付费方案💳:

每种方案都可以在过期之后重复购买,也可以一开始就多次购买。大家可以按需选购。最低充值两块钱,买不到吃亏,买不到上当。

充值完成后,用户会获得一个 Secure HTTP Proxy2 服务和用户名。这个用户名是使用 Go 语言的 crypto/rand 生成的 128 位随机数,被别人猜到的可能极小。所以把它转成文本格式后当作用户名来用。

Docker Desktop 官方支持配置 Secure HTTP Proxy 代理。配置方法如下图:

Docker 配置 HTTPS 代理

如果是在服务器使用,则需要修改 dockerd 的 systemd 配置。

创建 dockerd 相关的 systemd 目录,这种 .d 目录下的配置将覆盖默认配置:

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

新建配置文件 /etc/systemd/system/docker.service.d/proxy.conf 内容如下:

[Service]
Environment="HTTP_PROXY=https://XXX:@docker.lehu.in:443"
Environment="HTTPS_PROXY=https://XXX:@docker.lehu.in:443"
Environment="NO_PROXY=127.0.0.1,localhost,192.168.*,*.example.com"

需要将 XXX 换成你的用户名~

最后重新加载配置文件并重启服务:

sudo systemctl daemon-reload
sudo systemctl restart docker

如果嫌改 systemd 配置比较麻烦,也可以直接修改 /etc/docker/daemon.json 文件,添加代理配置:

之前有朋友反馈该方法在老版本 docker 上可能有问题~

{
  "proxies": {
    "http-proxy": "https://XXX:@docker.lehu.in:443",
    "https-proxy": "https://XXX:@docker.lehu.in:443",
    "no-proxy": "*.test.example.com,.example.org,127.0.0.0/8"
  }
}

配置好并重启之后你的 docker 就可以起飞了🚀

如果你有兴趣,可以加我微信 webcry。或者也可以先充两块钱,体验一下速度😜加微信之后我还会跟你同步一个额外的福利😄快来试试吧。


  1. 看到新闻后连夜给自用的服务加上了流量计费功能,可以看 ./go/bytes-counter.html↩︎

  2. 可以参考我这篇文章 ./https-tunnel.html↩︎