在群辉上解决 Docker Hub 加载不出来的问题

群辉上有个 Docker 套件,内置了 Docker Hub,可以方便地从 Docker Hub 下载镜像。但是在国内,因为不可说的原因,这个 Docker Hub 加载不出来,如下图所示,于是开始着手解决这个问题。

第一步:尝试使用 Docker Hub 镜像

在网上搜索了 Docker Hub 镜像,主要有下面这些:

我把这些镜像地址在群辉的 Docker 套件中每个都试了试。除了阿里云那个以外,因为阿里云那个需要登录。

在群辉 Docker 套件中配置镜像步骤如下:

点击注册表选项卡中的设置按钮

截屏2023-06-05 15.05.35

选择 Docker Hub 这一行以后,点击”编辑“

截屏2023-06-05 15.05.35

勾选上”启用注册表镜像“,然后把镜像 URL 填入”注册表镜像 URL:” 文本框中。

点击确定后会弹出提示,要重新启动 Docker 容器,问是否继续,点击“是”。

然后显示“加载中…”,等待了一会,加载中提示消失,界面还是空白一片的。于是试着把 Docker 套件关闭再重新打开,甚至也试了将 Docker 套件停用再启动。然后点到注册表这个界面时,还是显示文章最开头的那张图——“查询注册表失败”。

上面的每个镜像地址配置进去都不行,最后登录了阿里云,在阿里云里找到“容器镜像服务”,在里面拿到了我的镜像地址,配置进去,还是一样的不行。

很奇怪,是这些镜像地址都失效了还是我配置的不对?

第二步:尝试使用群辉的系统代理设置

因为我本机 mac 电脑上安装并运行着 Clash,我就尝试设置群辉的系统代理到我的电脑上,设置如下图,然后点击“应用”保存设置。

但是还是不行,于是我 ssh 登录到群辉上,输入 curl www.google.com,依然打不开,提示:

1
curl: (7) Failed to connect to 192.168.0.109 port 7890 after 11 ms: Connection refused

连接被拒绝了。然后我检查了一下 Clash 的菜单,发现有一个”允许局域网连接“,并勾选上它。

这时再次 curl www.google.com 就有结果了,能正常访问了。

然后把 Docker 套件关闭重新打开,点击注册表。

Very Good!

但是这样代理到我的 mac 上不是长久之计,于是进入第三步。

第三步:在群辉上运行 Clash

在注册表中搜索 clash

下载第一个名为 dramacro/clash 的映像。

下载好以后,通过左边侧边栏切换到映像界面,找到刚下载好的这个映像并启动。

点下一步直到端口设置界面,添加以下两个端口映射:

这里如果你没有和我一样使用 mixed-port,可能要多配置一个端口。使用了 mixed-port 就都走 7890 这个默认端口就可以了。9090 端口是访问管理面板用的。

然后点下一步,启动这个容器。

不过看到有人说这个映像有偷跑流量的问题,有可能是因为群辉拥有公网 IP,并且这个容器使用了默认的 7890 端口被别人扫描到了,这种情况可以把端口号修改为其它端口号。也有人说是这个映像自带后门,这个就不清楚了,等我尝试一阵子看看。

然后再下载 haishanh/yacd 这个映像,这是 Clash 的管理面板,用来对 Clash 做一些配置,例如选择模式和线路。

我也尝试了一些在线的,例如 http://yacd.haishan.me/,但是设置了 IP 和端口号后会连接失败,不知道什么原因。用上面的 haishanh/yacd 没有这个问题。

第四步:设置群辉系统代理

现在 Clash 容器已经运行起来了,回到群辉系统控制面板 -> 网络设置,设置代理服务器:

现在再打开 Docker 套件的注册表,OK,一切正常显示了。