【技术分享】自建专属Docker镜像源,实现镜像拉取自由,LightMirrors部署教程(python、npm、PyTorch也可用)

0x 前言

由于一些特殊原因,国内许多Docker镜像服务被迫关闭。尽管阿里、华为等公司仍在提供镜像服务,但这些服务也存在随时关闭的风险。此外,我个人也有Python、NPM、PyTorch等镜像的需求。经过一番搜索,我找到了一个开源项目,并在部署过程中遇到了一些问题。为此,我整理了这些经验,并撰写了这篇文章。

1x 正文

一些准备

项目开源地址:GitHub - NoCLin/LightMirrors: LightMirrors is a lightweight mirror server with caching capabilities that currently supports DockerHub, K8S, PyPI, PyTorch, and NPM.

镜像服务域名绑定服务器IP(类似这样,涂黑的部分是IP)

克隆项目

git clone https://github.com/NoCLin/LightMirrors.git

编辑.env文件,配置环境变量

cp .env.example .env
nano .env

.env内容

# for caddy
# 填写cloudflare的DNS API TOKEN
CLOUDFLARE_DNS_API_TOKEN=xxxx

# 如果不使用cloudflare,理论上这部分内容也可以自行配置
# 开启ssl则填写https,否则不用改
SCHEME=http
# 填写访问域名
BASE_DOMAIN=local.homeinfra.org

# for aria2 and mirrors
# 填写RPC请求的的SECRET
RPC_SECRET=changeit

# 填写代理,如果需要
# for all, if you want set proxy for all services
# aria2 need the lowercase one, FYI https://aria2.github.io/manual/en/html/aria2c.html#environment
# all_proxy=

构建镜像

由于项目所需镜像暂未发布到Dockerhub,所以需要自己构建镜像

cd /path/to/LightMirrors/src
docker buildx build -t lightmirrors/mirrors:latest .
cd /path/to/LightMirrors/caddy
docker buildx build -t lightmirrors/caddy:latest .
cd /path/to/LightMirrors/aria2
docker buildx build -t lightmirrors/aria2:latest .

这里我也构建好了一份镜像,有需要的可以下载导入,如果无法正常使用,可能需要自行构建
我的构建环境是amd64架构,系统Ubuntu 22.04

123云盘

提取码:oMFH

谷歌云盘
https://drive.google.com/drive/folders/1wSuF46Zn-TSDKc1q6O2dZ062WZTO5Ckr?usp=drive_link

(可选)加载镜像

docker -o 下载的镜像名
docker images

成功加载截图

运行项目

当一切准备就绪,就可以开始运行项目了

cd /path/to/LightMirrors
# (二选一)如果使用caddy作为反代服务
docker-compose -f docker-compose-caddy.yml up
# (二选一)否则
docker-compose up
# 执行完上面的二选一操作后
docker ps

成功运行截图

测试与使用

这里直接引用原文,将图中的域名更换为你的域名即可

3 个赞

赞,感谢分享好项目

1 个赞

太强了!

1 个赞

常规话题软件分享

白扯都跑起来了,除了Docker能下载,其他的都报错。

遇到什么报错呢?我这边测试是没问题的