5种方法,解决docker无法使用问题,带着你的NAS终极突围,全网最全攻略

2024-06-12 15:10:12 105点赞 862收藏 100评论

大家好,这里是Cherry,喜爱折腾、捡垃圾、玩数码,热衷于分享NAS、docker玩耍经验~

前言

docker是NAS生态中必不可少的一个环节,作为一个NAS用户,一旦docker无法使用,那NAS的作用几乎可以失去80%。

近期,因docker被处理的问题,导致越来越多的NAS玩家开始寻找突围的办法。所以Cherry也花了好几天时间,收集并整理网上各种各样的方法,今天,将目前收集到的5种解决方案一一道出,并为每种解决方案提供1个例子供大家参考。

目录
方案一:修改hosts
方案二:公共镜像库
方案三:自建加速(镜像)库
方案四:docker proxy
方案五:离线安装


方案一:修改hosts

本次docker被处理,本质上是处理了cloudflare的连接,使用的是SNI阻拦+DNS污染。而SNI阻拦部分地区因为运营商的关系,省域强度会小一些,基本上修复DNS污染就可以正常访问(注意,是小部分地方,该方法并不适用)。

SNI阻拦涉及核心功能,基本上就是域前置、本地反代、http回流、HTTPSv2/v3等方法绕过,视服务商不同有所区别,这个不方便介绍,自行搜索。而DNS污染就简单很多了,修改Hosts即可,我们可以通过CF优选等工具将docker相应的网站指定DNS解析后,我们就可以恢复下载。

production.cloudflare.docker.com

通过SSH连接到NAS,然后在root全县辖修改NAS的hosts(路径/etc/hosts),最后增加一行【ip 域名】这样的格式,设置完成以后按下ESC退出编辑模式,然后输入【:wq!】保存

5种方法,解决docker无法使用问题,带着你的NAS终极突围,全网最全攻略

方案二:公用镜像库

公共镜像库目前可能是唯一比较方便和实用的方法了,虽然主流的公共镜像库都因为ZC原因下架了,但是依旧会有一些小型乃至个人镜像库供大家实用,但是镜像库的缺点很明显,那就是库内的镜像不全,需要和管理者去申请补充。

这里介绍一些github上的镜像库项目,可以查看可用的镜像库,目前主流的基本上是daocluod这个镜像库了。

项目一(镜像):kubesre/docker-registry-mirrors

项目二(镜像):sky22333/Docker-Hub

项目三(代理):wzshiming/crproxy

5种方法,解决docker无法使用问题,带着你的NAS终极突围,全网最全攻略

使用方法,也很简单

威联通——【Container Station】——【存储库】——【添加】,填写镜像URL地址。拉取镜像的时候选择设置好的镜像库即可。

5种方法,解决docker无法使用问题,带着你的NAS终极突围,全网最全攻略

群晖——【Container Manager】——【注册表】——【设置】——【新增】,填写镜像URL地址后勾选使用。

5种方法,解决docker无法使用问题,带着你的NAS终极突围,全网最全攻略

方案三:自建加速(镜像)库

刚才提到的公用镜像库之外,还有一种方式就是自建自己使用的个人加速(代理)库,好处就是不需要本地存储镜像,而是通过加速的方式实现镜像下载。

1、基于阿里云申请

这个方法@Stark-C大佬写的很清楚了,这里就不赘述了,直接给大家指路大佬文章。

2、基于VPS部署

需要海外VPS一台,而且方法多是多样,比如nexus3、harbor、nginx反代等等,这里就不赘述了,今天介绍一款支持一键部署的项目。

项目地址:https://github.com/dqzboy/Docker-Proxy

自建Docker镜像加速服务,基于官方registry一键部署Docker、K8s、Quay、Ghcr镜像加速、管理服务。

# 安装wget和cul,红帽系使用yum,debian系使用apt

apt(yum) -y install wget curl

# 一键安装

bash -c "$(curl -fsSL https://raw.githubusercontent.com/dqzboy/Docker-Proxy/main/install/DockerProxy_Install.sh)"

3、基于CF workers部署

秉持着能白嫖绝对不付钱的想法,我们可以采用cloudflare workers来作为加速源,配合CF优选实现快速链接。

PC端 :

windows下打开PowerShell,输入以下指令安装pnpm

iwr https://get.pnpm.io/install.ps1 -useb | iex

5种方法,解决docker无法使用问题,带着你的NAS终极突围,全网最全攻略

从github下载代码包,解压到桌面即可

5种方法,解决docker无法使用问题,带着你的NAS终极突围,全网最全攻略

CloudFlare端:

进入【Workers 和 Pages】,新创建一个workers应用程序

5种方法,解决docker无法使用问题,带着你的NAS终极突围,全网最全攻略

点击【创建Workers】,下一步,随便取名,如docker为前缀

5种方法,解决docker无法使用问题,带着你的NAS终极突围,全网最全攻略

选择【wrangler.toml】并确认

5种方法,解决docker无法使用问题,带着你的NAS终极突围,全网最全攻略

回到【概述】,复制最右侧的“account_id”

5种方法,解决docker无法使用问题,带着你的NAS终极突围,全网最全攻略

PC端

将wrangler.toml.sample修改为wrangler.toml,打开并更改文件中的name和account_id,name可以用刚才申请的docker,账号id就是刚才复制的,然后保存。

5种方法,解决docker无法使用问题,带着你的NAS终极突围,全网最全攻略

重新打开PowerShell

# 来到压缩包目录,这个路径根据自己的调整

cd C:UsersEQ59DownloadsCompressedhammal-main

# 安装依赖

pnpm install

# 登录cf

npx wrangler kv:namespace create hammal_cache

会自动转跳到浏览器进行cf认证

5种方法,解决docker无法使用问题,带着你的NAS终极突围,全网最全攻略

复制返回的kv ID

5种方法,解决docker无法使用问题,带着你的NAS终极突围,全网最全攻略

然后继续修改wrangler.toml文件,填入红框内

5种方法,解决docker无法使用问题,带着你的NAS终极突围,全网最全攻略

然后继续在PowerShell里输入pnpm run deploy部署到cf端,完成后可以在CF workers里查看是否部署成功

5种方法,解决docker无法使用问题,带着你的NAS终极突围,全网最全攻略

然后我们点击【设置】,选择【触发器】,选择【自定义域】,填入托管在CF的域名下任意二级域名确认即可。

5种方法,解决docker无法使用问题,带着你的NAS终极突围,全网最全攻略

NAS端:

以群晖为例,设置默认的【Docker Hub v1】,新增注册表镜像,选择我们刚才设置的自定义域名确认即可。

5种方法,解决docker无法使用问题,带着你的NAS终极突围,全网最全攻略

已经可以正常拉取镜像了,但是速度稍微会慢一点,但是总比没有好,可以通过优选CF,参照方案一在NAS里修改hosts来提速。

5种方法,解决docker无法使用问题,带着你的NAS终极突围,全网最全攻略

CF的流量也可以看得清清楚楚

5种方法,解决docker无法使用问题,带着你的NAS终极突围,全网最全攻略

方案四:docker proxy

该方法使用docker自带的proxy工具,解决部分网友赛老师后依旧无法拉取镜像的问题。

使用ssh工具登录NAS,以此输入以下指令

# 首先请登录root,群晖使用sudo -i,其他NAS默认root,创建proxy配置文件

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

touch /etc/systemd/system/docker.service.d/proxy.conf

# 修改proxy配置文件

vim /etc/systemd/system/docker.service.d/proxy.conf

# 将以下代码复制进去,然后根据自己的情况修改,192.168.0.100为NAS IP

[Service]

Environment="HTTP_PROXY=http://192.168.0.100:7890/"

Environment="HTTPS_PROXY=http://192.168.0.100:7891/"

Environment="NO_PROXY=localhost,127.0.0.1,.example.com"

# 完成以后按ESC,输入:wq!保存并退出

# 重新读取daemon

systemctl daemon-reload

# 重启docker或重启NAS,比如群晖是无法使用以下指令的,直接重启NAS即可

systemctl restart docker

重启docker以后,在ssh页面输入docker info查看是否有红框内代码,有的话说明成功了,可以自由拉去镜像了

5种方法,解决docker无法使用问题,带着你的NAS终极突围,全网最全攻略

方案五:离线安装

如果以上方法你都没有办法,那我们还有最后一条路,离线安装docker,该方案让互联网共享精神再次伟大!

正如古希腊掌管光盘的神、21世纪SSD硬盘掌控者、神秘的地铁风衣男、走遍大街小巷的资源售卖大师所说:哪里有需要,哪里就有光盘。

我们可以寻找一些可以获取image资源的小伙伴,让他们通过ssh将资源导出给我们,然后我们再导入到本地使用。如果只是拷贝镜像的,只需要使用docker save 和docker load就可以了

【docker save 与 docker load】,基于已有的镜像导出

# 将名为【XXX/images:tag】的镜像,导出为到路径【/home】下的【image.tar】压缩包

docker save XXX/images:tag -o /home/image.tar

# 将路径【/home】下名为【image.tar】的压缩包导入

docker load -i /home/image.tar

#### 查看docker 镜像,找到最近导入的镜像

# 该指令自行查找导入镜像

docker images

# 该指令按导入时间排序

docker images --format "{{.ID}}t{{.CreatedAt}}" | sort -k 2 -r

# 将导入的镜像ID为【abcd123456789】的镜像,重命名为【XXX/images:tag】

docker tag abcd123456789 XXX/images:tag

【docker export 与 docker import】,基于已有的容器导出

# 将名为【container】的容器,导出为到路径【/home】下的【image.tar】压缩包

docker export container -o /home/image.tar

# 将路径【/home】下名为【image.tar】的压缩包导入,并改名为【XXX/images:tag】

docker import /home/image.tar XXX/images:tag


我的NAS推荐

这里简单介绍一下Cherry日常使用的几台NAS,以及为何选择这些NAS。

核心设备——群晖 DS920+

这是Cherry第一台NAS,服役了好多年了,经典的J4125cpu+24G内存,搭配517实现9块18T盘塞满,主要用来玩玩PT的,日常使用的docker和个人资料,基本都存放在这里,因此也是Cherry感情最深的一台设备,但是J4125的性能瓶颈就在这里,容器多了cpu常年90%徘徊,在部署新项目的时候特别不方便。

二代目核心设备——威联通QNAP TS-464C2

正因为前面提到群晖920服役时间过长问题,Cherry在入手了一台N5105的软路由后,又将目光看向了搭配同时期N5095的QNAP464C2,作为NAS届的常青树,QNAP的系统其实一直是Cherry所喜爱的,相比于群晖,威联通的系统更值得深入使用和思考,功能点更丰满。

生产NAS——自建Unraid

回到项目生产中,考虑在项目部署过程中,经常会出现启动错误、容器异常、版本迭代等问题,这些问题统统需要强大的cpu和多线程来解决,因此就使用双路洋垃圾组建了一台unraid,用于生产环境使用,也是我的项目部署主力机。

5种方法,解决docker无法使用问题,带着你的NAS终极突围,全网最全攻略
5种方法,解决docker无法使用问题,带着你的NAS终极突围,全网最全攻略

欢迎朋友们评论区讨论留言。我会定期更新关注NAS使用方法、开源软件与Docker软件、游戏与生活相关内容,喜欢的朋友请关注、点赞、留言支持。

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

展开 收起

Synology 群晖 DS923+ 四盘位 NAS存储(AMD R1600、4GB)

Synology 群晖 DS923+ 四盘位 NAS存储(AMD R1600、4GB)

4892.5元起

QNAP 威联通 TS-464C2 四盘位 NAS网络存储(赛扬N5095、8GB)黑色

QNAP 威联通 TS-464C2 四盘位 NAS网络存储(赛扬N5095、8GB)黑色

2399元起

Synology 群晖 DS224+ 双盘位NAS(赛扬J4125、2GB)

Synology 群晖 DS224+ 双盘位NAS(赛扬J4125、2GB)

2399元起

QNAP 威联通 TS-464C 4盘位NAS(赛扬N5095、8GB)

QNAP 威联通 TS-464C 4盘位NAS(赛扬N5095、8GB)

1699元起

Synology 群晖 DS423+ 4盘位 NAS网络存储 (Intel四核、2GB)

Synology 群晖 DS423+ 4盘位 NAS网络存储 (Intel四核、2GB)

3199元起

QNAP 威联通 TS-466C 四盘位NAS(奔腾N6005、8GB)

QNAP 威联通 TS-466C 四盘位NAS(奔腾N6005、8GB)

3199元起

Synology 群晖 DS223 2盘位NAS(Realtek RTD1619B、2GB)

Synology 群晖 DS223 2盘位NAS(Realtek RTD1619B、2GB)

2299元起

QNAP 威联通 TS-564 五盘位NAS (N5095、8GB)

QNAP 威联通 TS-564 五盘位NAS (N5095、8GB)

1780元起

QNAP 威联通 TS-264C-4G 双盘位 NAS存储(N5105、4GB)

QNAP 威联通 TS-264C-4G 双盘位 NAS存储(N5105、4GB)

1899元起

群晖(Synology)BeeStation 4TB 四核心 单盘位 NAS 网络存储 AI家庭相册 联网硬盘 备份iPhone照片手机增程器

群晖(Synology)BeeStation 4TB 四核心 单盘位 NAS 网络存储 AI家庭相册 联网硬盘 备份iPhone照片手机增程器

1980元起

QNAP 威联通 TS-462C 4盘位NAS(赛扬N4505、4GB)

QNAP 威联通 TS-462C 4盘位NAS(赛扬N4505、4GB)

1579元起

QNAP 威联通 TS-216 双盘位NAS (ARM Cortex A55、2GB)

QNAP 威联通 TS-216 双盘位NAS (ARM Cortex A55、2GB)

999元起

QNAP 威联通 TS-262C 双盘位NAS(赛扬N4505、4GB)

QNAP 威联通 TS-262C 双盘位NAS(赛扬N4505、4GB)

1279元起

威联通(QNAP)TS-464C 宇宙魔方 四核心处理器网络存储服务器内置双M.2插槽NAS私有云(天鹅白)

威联通(QNAP)TS-464C 宇宙魔方 四核心处理器网络存储服务器内置双M.2插槽NAS私有云(天鹅白)

1649元起

群晖(Synology)DS223j 双盘位 NAS网络存储服务器 私有云 智能相册 文件自动同步

群晖(Synology)DS223j 双盘位 NAS网络存储服务器 私有云 智能相册 文件自动同步

1549元起

QNAP 威联通 TS-416 四盘位NAS(Cortex-A55、4GB)

QNAP 威联通 TS-416 四盘位NAS(Cortex-A55、4GB)

1499元起

文中相关商品

QNAP 威联通 TS-464C2 四盘位 NAS网络存储(赛扬N5095、8GB)黑色
天钡 WTR Pro NAS型准系统迷你电脑主机(N100、核芯显卡、16GB、512GB SSD)
100评论

  • 精彩
  • 最新
提示信息

取消
确认
评论举报

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
862
扫一下,分享更方便,购买更轻松