![Docker镜像拉取最优解!养一只小猫,利用crproxy高速无感镜像拉取](https://panda995.top:500/img/2024/06/image667d6f89dda9e.png)
大家好,我是熊猫,你的NAS领航员。NAS不只是存储那么简单,数码也可以是生活,关注我,给你的生活加点'技'趣!
引言
自从国内的各大Docker镜像源被下架后,NAS想要拉取个镜像真的不容易,不过网友们可不是吃素的,此路不通那就换一条路。于是现在有各种办法能让我们拉取镜像,例如通过套CF的形式,实现拉取镜像,不过域名容易被DNS污染导致不能用;还可以通过自建镜像站的形式,不过需要什么镜像都需要先去同步到自己镜像源,比较麻烦;或者干脆直接让NAS出国也行,但是这会导致NAS上的其他容器或者项目也出国。
![Docker](https://panda995.top:500/img/2024/06/image667d6f89dda9e.png)
那么有没有一种方法,既可以让NAS不出国,又能实现不怕DNS污染,同时拉取镜像也方便快捷的方式呢?还真有,这里感谢粉丝姜不吃提供的信息来源,同时感谢作者wzshiming的项目。
部署过程
首先我们需要在NAS上养一只小猫,同时还需要这只猫有对应的猫粮。猫很好养,但是猫粮怎么来就需要大家自行想办法了,不过我相信既然都玩上NAS以及Docker了,那么猫粮应该不缺。
![小猫](https://panda995.top:500/img/2024/06/image667d71933caec.png)
准备好养猫的材料,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文件就是猫粮,这个看你在哪个地方领养的猫,直接去领养猫的地方拿猫粮就可以了。
![猫窝](https://panda995.top:500/img/2024/06/image667d725c24526.png)
猫和猫粮解决了之后启动容器,这时候就有一个猫窝了,猫窝的端口为18080,或者你定义的其他端口。如果你的猫粮小猫肯吃,那么猫窝中就能看到小猫每天出去玩的各种路径了,这里就不一一展示了,接下来我们利用小猫拉取镜像。
![部署文件](https://panda995.top:500/img/2024/06/image667d72edddc0c.png)
需要注意的事该项目最好用于个人使用,毕竟要用到你自己家里的带宽,公开的话估计会比较卡。准备好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。你会发现速度飞快(根据你猫的品种决定),同时拉取畅通无阻。
![镜像拉取](https://panda995.top:500/img/2024/06/image667d745352848.png)
此时我们就已经可以拉取镜像了,如果你有域名,那么我们还可以通过域名+端口的形式拉取镜像,例如如果熊猫有一个panda.com的域名,那么就可以通过docker pull panda.com:4321/idootop/feiyu:latest,当然前提是你将其域名做了解析。
不过需要注意的是,目前测试下来发现群辉、极空间暂不支持端口情况下作为镜像源使用,但威联通目前是支持的(威联通YYDS)。同时第三方的Docker容器管理,大都支持带端口的情况下拉取镜像,例如portainer、1Panel这一类。
![威联通牛](https://panda995.top:500/img/2024/06/image667d772b92f9d.png)
当然了有没有办法解决呢?自然也是有的。进阶玩法就是通过将域名绑定到render上实现使用80和443端口,render每个月免费流量为100G,用来拉取镜像什么的也是完全够用了,此方法可以参考项目k0baya/QLonRAILWAY。
![进阶攻略](https://panda995.top:500/img/2024/06/image667d783d3647a.png)
这时候我们就可以直接使用我们的域名来拉取镜像,不需要加端口什么的了,同时这个网址也可以直接添加到任意NAS的镜像源设置中去。
![直接拉取](https://panda995.top:500/img/2024/06/image667d78b1a3844.png)
切记不要将域名公开,目前网友自建的大部分镜像源都因为使用人太多,要么限速要么关闭了,所以想要自己体验高速,就不要公开。当然如果你有几个好大儿和你一样都玩nas,那么可以一起用。
总结
本期内容稍微比较隐晦,如果有不懂的,不要来问。懂的自然懂,不懂的问我我也不能回答。
以上便是本期的全部内容了,如果你觉得还算有趣或者对你有所帮助,不妨点赞收藏,最后也希望能得到你的关注,咱们下期见!三连
直接部署个harbor, 创建个代理库就好了,平时还能用来维护自己的镜像