Docker镜像拉取最优解!养一只小猫,利用crproxy高速无感镜像拉取
「大家好,我是熊猫,你的NAS领航员。NAS不只是存储那么简单,数码也可以是生活,关注我,给你的生活加点'技'趣!」
引言
自从国内的各大Docker镜像源被下架后,NAS想要拉取个镜像真的不容易,不过网友们可不是吃素的,此路不通那就换一条路。于是现在有各种办法能让我们拉取镜像,例如通过套CF的形式,实现拉取镜像,不过域名容易被DNS污染导致不能用;还可以通过自建镜像站的形式,不过需要什么镜像都需要先去同步到自己镜像源,比较麻烦;或者干脆直接让NAS出国也行,但是这会导致NAS上的其他容器或者项目也出国。

那么有没有一种方法,既可以让NAS不出国,又能实现不怕DNS污染,同时拉取镜像也方便快捷的方式呢?还真有,这里感谢粉丝「姜不吃」提供的信息来源,同时感谢作者「wzshiming」的项目。
部署过程
首先我们需要在「NAS上养一只小猫」,同时还需要这只猫有对应的「猫粮」。猫很好养,但是猫粮怎么来就需要大家自行想办法了,不过我相信既然都玩上NAS以及Docker了,那么猫粮应该不缺。
准备好养猫的材料,docker-compose文件,内容如下,其中「将猫改为小猫真名」就可以了。还要注意猫的端口以及路径,根据自己环境来设置。
version: '3'
services:
猫:
container_name: 猫
image: laoyutang/猫-and-dashboard:latest
restart: always
logging:
options:
max-size: 1m
volumes:
- /volume1/docker/猫/config.yml:/root/.config/猫/config.yaml
ports:
- "18080:8080"
- "17890:7890/tcp"
- "17890:7890/udp"
这里的「config.yaml文件就是猫粮」,这个看你在哪个地方领养的猫,直接去领养猫的地方拿猫粮就可以了。

猫和猫粮解决了之后启动容器,这时候就有一个猫窝了,猫窝的端口为18080,或者你定义的其他端口。如果你的猫粮小猫肯吃,那么猫窝中就能看到小猫每天出去玩的各种路径了,这里就不一一展示了,接下来我们利用小猫拉取镜像。

需要注意的事该项目最好用于个人使用,毕竟要用到你自己家里的带宽,公开的话估计会比较卡。准备好docker-compose文件,参考图中或者参考熊猫这里的设置,其中「environment环境变量」的值为小猫出去玩的路径和号码,根据自己情况更改,例如熊猫这里就是:
version: '3'
services:
crproxy:
image: ghcr.io/daocloud/crproxy/crproxy:v0.8.0
container_name: crproxy
restart: unless-stopped
ports:
- 4321:8080
- 4322:8080
command: |
--acme-cache-dir=/tmp/acme
--acme-hosts=*
--default-registry=docker.io
tmpfs:
- /tmp/acme
# 非必须, 如果这台服务器无法畅通的达到你要的镜像仓库可以尝试配置
environment:
- https_proxy=http://IP:9870
- http_proxy=http://IP:9870
如何使用
配置好所有之后我们启动容器,这时候尝试docker pull镜像的时候可以这样:docker pull 127.0.0.1:4321/idootop/feiyu:latest。你会发现速度飞快(根据你「猫的品种」决定),同时拉取畅通无阻。

此时我们就已经可以拉取镜像了,如果你有域名,那么我们还可以通过域名+端口的形式拉取镜像,例如如果熊猫有一个panda.com的域名,那么就可以通过docker pull panda.com:4321/idootop/feiyu:latest,当然前提是你将其域名做了解析。
不过需要注意的是,目前测试下来发现「群辉、极空间暂不支持端口情况下作为镜像源」使用,但威联通目前是支持的(威联通YYDS)。同时第三方的Docker容器管理,大都支持带端口的情况下拉取镜像,例如portainer、1Panel这一类。

当然了有没有办法解决呢?自然也是有的。进阶玩法就是通过将域名绑定到render上实现使用80和443端口,render每个月免费流量为100G,用来拉取镜像什么的也是完全够用了,此方法可以参考项目「k0baya/QLonRAILWAY」。

这时候我们就可以直接使用我们的域名来拉取镜像,不需要加端口什么的了,同时这个网址也可以直接添加到任意NAS的镜像源设置中去。

切记「不要将域名公开」,目前网友自建的大部分镜像源都因为使用人太多,要么限速要么关闭了,所以想要自己体验高速,就不要公开。当然如果你有几个好大儿和你一样都玩nas,那么可以一起用。
总结
本期内容稍微比较隐晦,如果有不懂的,不要来问。懂的自然懂,不懂的问我我也不能回答。
以上便是本期的全部内容了,如果你觉得还算有趣或者对你有所帮助,不妨点赞收藏,最后也希望能得到你的关注,咱们下期见!

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

熊猫不是猫QAQ
校验提示文案
sz41321889
校验提示文案
高某人哇
校验提示文案
琪哥123
校验提示文案
aekey
校验提示文案
fallen-potato
校验提示文案
囧小叔
校验提示文案
网络咖啡吧
校验提示文案
jojo100
校验提示文案
花果山的猴子-_-
校验提示文案
宋世江山
校验提示文案
dkess
校验提示文案
HLAB
校验提示文案
弹奏喻文雯
校验提示文案
qubit
校验提示文案
闲嗑瓜子
校验提示文案
V怪客
docker pull 127.0.0.1:4321/idootop/feiyu:latest
Error response from daemon: received unexpected HTTP status: 500 Internal Server Error
校验提示文案
空调救我命
校验提示文案
手手小哥
校验提示文案
莫小牙阝
校验提示文案
大码垃圾佬
校验提示文案
hudula
校验提示文案
无名也疯狂
校验提示文案
不让说话
校验提示文案
非正常天气
校验提示文案
莫小牙阝
校验提示文案
手手小哥
校验提示文案
willzhuce
校验提示文案
sz41321889
校验提示文案
空调救我命
校验提示文案
V怪客
docker pull 127.0.0.1:4321/idootop/feiyu:latest
Error response from daemon: received unexpected HTTP status: 500 Internal Server Error
校验提示文案
高某人哇
校验提示文案
闲嗑瓜子
校验提示文案
囧小叔
校验提示文案
o0卖菜的0o
校验提示文案
qubit
校验提示文案
弹奏喻文雯
校验提示文案
jojo100
校验提示文案
网络咖啡吧
校验提示文案
琪哥123
校验提示文案