自建Docker缓存加速器

2024-06-11
11672
0
0

温馨提示:本文最后更新于 2024-08-07,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

pexels-photo-350614 (1).jpeg

近期由于上级通知,各大国内Docker加速器全部关闭了,导致拉取镜像变得困难。这里介绍3种解决办法。请先删除之前配置的加速地址

方法1:镜像转存

借助Github和阿里云镜像仓库,转存镜像。

具体方法参考:https://www.bilibili.com/read/cv35249690/

👍 优点:无需服务器

👎 缺点:不灵活,只适合少量镜像下载场景

方法2:代理连接

代理服务端具体安装步骤略,大家自行研究。

部署完代理服务器,只需要给Docker配置上代理链接即可

1.编辑配置文件 /lib/systemd/system/docker.service ,设置代理地址

# 在[Service]模块下添加
Environment=HTTP_PROXY=http://proxyAddress:port
Environment=HTTPS_PROXY=http://proxyAddress:port
Environment=NO_PROXY=localhost,127.0.0.1

image.png

2.重启Docker

sudo systemctl daemon-reload
sudo systemctl restart docker

23.0以上版本可以在 daemon.json文件中配置代理,参考文档:https://docs.docker.com/config/daemon/systemd/#httphttps-proxy

{
  "proxies": {
    "http-proxy": "http://proxy.example.com:3128",
    "https-proxy": "https://proxy.example.com:3129",
    "no-proxy": "*.test.example.com,.example.org,127.0.0.0/8"
  }
}

👍 优点:之后拉取镜像走代理,一劳永逸

👎 缺点:需境外服务器,容器内可能也会走代理

方法3:自建Docker加速器

教程1:https://mirrors.ustc.edu.cn/help/dockerhub.html

教程2:https://github.com/stilleshan/dockerfiles/tree/main/registry-proxy

我参考的教程2,一个容器搞定。

1.在境外机器上搭建加速器,我这里没有挂载存储出来,重启即可清理磁盘,更方便

docker run -d --restart always \
    -p 5000:5000 \
    -e PROXY_REMOTE_URL=https://registry-1.docker.io \
    stilleshan/registry-proxy

2.境内机器上配置加速地址,和之前一样

# 编辑 /etc/docker/daemon.json,加入地址

{
  "registry-mirrors": ["http://xxxxxxx:5000"]
}

👍 优点:换个加速器即可

👎 缺点:需境外服务器

方法4:利用Cloudflare的Workers来自建加速器

注意:必须要域名,并且域名需要托管在Cloudflare,因为Cloudflare分配的.dev域名被墙了

项目地址:https://github.com/ImSingee/hammal

image.png

使用下来效果还不错,免费套餐每天100000请求,够用了

👍 优点:不用境外服务器,配置简单,换个加速器即可

👎 缺点:需要域名

方法5:使用网上分享的加速地址

这里整理了一些目前可用的地址,将地址配置到 /etc/docker/daemon.json并重启docker服务即可

  • https://docker.mirrors.aster.edu.pl
  • https://docker.mirrors.imoyuapp.win
  • https://docker.m.daocloud.io (仅支持拉取白名单镜像)

评论

Polar.
最重要的,是拥有跟随内心与直觉的勇气

文章目录