前言
Anye Docker Proxy 服务的停运
经过深思熟虑和全面的评估,我决定对 Anye Docker Proxy 服务进行停运。以下是关于停运服务的详细信息和相关考虑因素。
停运原因及考虑因素
安全与稳定性考量:鉴于境内网络安全形势的不断变化,即时起我将中止对 Dockerhub 仓库的代理服务。Docker 相关工具默认会自动处理失效镜像的回退,如果对官方源有访问困难问题,建议尝试使用其他仍在服务的镜像源。
作为公益站点的提供者,我深表歉意,Anye Docker Proxy 开站三个月来,已为超 340 多人提供超 1100 镜像下载,这不仅展示了该服务在短时间内获得的广泛认可,也证明了这一服务在帮助用户解决 Docker 镜像下载问题方面的显著成效。
在此,特别感谢以下机构和个人对 Anye Docker Proxy 服务提供的支持与帮助:
首先,感谢 1Panel 提供的服务器面板运维服务。1Panel 的高效、可靠的面板工具,为我们提供了稳定的运维支持,保障了服务的正常运行。
其次,感谢 Oracle 提供的免费服务器。Oracle 的免费服务器为我们的服务提供了坚实的硬件基础,使我们能够在低经济负担的情况下,顺利地开展和运营 Anye Docker Proxy 服务。
此外,感谢 浅时光博客 提供的教程和 Docker Proxy 基于的思路与设计灵感。浅时光博客的内容不仅启发了我们的设计思路,还为我们提供了宝贵的技术指导,使我们能够更好地实现服务的功能。
最后,感谢 404搜索引擎操作员 提供的 Vite 站点构建指南。
尽管 Anye Docker Proxy 服务即将停运,但私有构建方法依然公开,现记录如下
部署文档
部署环境
服务器要求
- 服务器:已安装 1Panel 面板的服务器一台,详细安装方法请参考 1Panel 安装教程。
快速安装命令:
RedHat / CentOS
curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sh quick_start.sh
Ubuntu / Debian
curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && bash quick_start.sh
网络环境:服务器需要能够 无阻碍 访问 Docker Hub, GitHub, Google, k8s, Quay, Microsoft 等镜像仓库
域名:域名一个,解析到服务器的公网 IP 地址,DNS 解析包括将要用于代理的子域的记录。
带宽:根据你的业务需求,选择合适的带宽。
硬盘:根据你的业务需求,选择合适的硬盘。
安装 OpenResty
在 1Panel 面板的 应用商店 中安装 OpenResty
,用于反向代理代理服务。
部署代理服务
创建容器组
- 在 1Panel 面板中,点击 容器 -> 编排 -> 创建编排,填写如下信息:
version: '3'
services:
# Docker Hub
docker-hub:
container_name: mirror-docker-hub
image: registry:latest
restart: always
volumes:
- ./docker-hub.yml:/etc/docker/registry/config.yml
- ./registry:/var/lib/registry
ports:
- 127.0.0.1:51000:5000
networks:
- registry-net
# GitHub Container Registry
ghcr:
container_name: mirror-ghcr
image: registry:latest
restart: always
volumes:
- ./ghcr.yml:/etc/docker/registry/config.yml
- ./registry:/var/lib/registry
ports:
- 127.0.0.1:52000:5000
networks:
- registry-net
# Google Container Registry
gcr:
container_name: mirror-gcr
image: registry:latest
restart: always
volumes:
- ./gcr.yml:/etc/docker/registry/config.yml
- ./registry:/var/lib/registry
ports:
- 127.0.0.1:53000:5000
networks:
- registry-net
# Google Kubernetes
k8s-gcr:
container_name: mirror-k8s-gcr
image: registry:latest
restart: always
volumes:
- ./k8s-gcr.yml:/etc/docker/registry/config.yml
- ./registry:/var/lib/registry
ports:
- 127.0.0.1:54000:5000
networks:
- registry-net
# Quay.io
quay:
container_name: mirror-quay
image: registry:latest
restart: always
volumes:
- ./quay.yml:/etc/docker/registry/config.yml
- ./registry:/var/lib/registry
ports:
- 127.0.0.1:55000:5000
networks:
- registry-net
# Microsoft Artifact Registry
mcr:
container_name: mirror-mcr
image: registry:latest
restart: always
volumes:
- ./mcr.yml:/etc/docker/registry/config.yml
- ./registry:/var/lib/registry
ports:
- 127.0.0.1:56000:5000
networks:
- registry-net
networks:
registry-net:
这将创建一个容器组,包含了 Docker Hub、GitHub、Google、k8s、Quay、Microsoft 的镜像仓库。
- 填写文件夹名称为
docker-mirror
,点击 确认,等待容器组创建完成。
创建配置文件
在 /opt/1panel/docker/compose/docker-mirror
路径中,创建以下配置文件:
$ docker-hub.yml
version: 0.1
storage:
cache:
blobdescriptor: inmemory
filesystem:
rootdirectory: /var/lib/registry
delete:
enabled: true
http:
addr: :5000
headers:
X-Content-Type-Options: [nosniff]
proxy:
remoteurl: https://registry-1.docker.io # Docker Hub 镜像仓库地址
username: # (可选)Docker Hub 的用户名
password: # (可选)Docker Hub 的密码
ghcr.yml
, gcr.yml
, k8s-gcr.yml
, quay.yml
, mcr.yml
配置文件类似,只需修改 proxy.remoteurl
为对应的镜像仓库地址:
镜像仓库 | 配置文件 | remoteurl |
---|---|---|
Docker Hub | docker-hub.yml | https://registry-1.docker.io |
GitHub Container Registry | ghcr.yml | https://ghcr.io |
Google Container Registry | gcr.yml | https://gcr.io |
Google Kubernetes | k8s-gcr.yml | https://k8s.gcr.io |
Quay.io | quay.yml | https://quay.io |
Microsoft Artifact Registry | mcr.yml | https://mcr.microsoft.com |
申请证书
在 1Panel 面板中,点击 证书,创建 Acme账户
和 DNS 账户
,然后点击 申请证书。
在这里建议申请 泛域名证书,以便后续使用。
其余各项信息按需填写。
配置反向代理
在 1Panel 面板中,点击 网站 -> 网站 -> 创建网站,分别创建以下网站:
(此处以本站域名为例
anye.in
,请替换为你的域名)
模式 | 主域名 | 协议 | 代理地址 | 备注 |
---|---|---|---|---|
反向代理 | mirror.anye.in | http | 127.0.0.1:51000 | Docker Hub |
反向代理 | ghcr.anye.in | http | 127.0.0.1:52000 | GitHub Container Registry |
反向代理 | gcr.anye.in | http | 127.0.0.1:53000 | Google Container Registry |
反向代理 | k8s.anye.in | http | 127.0.0.1:54000 | Google Kubernetes |
反向代理 | quay.anye.in | http | 127.0.0.1:55000 | Quay.io |
反向代理 | mcr.anye.in | http | 127.0.0.1:56000 | Microsoft Artifact Registry |
启用HTTPS
在 1Panel 面板中,为上述反向代理站点配置 HTTPS :
点击 网站 -> 网站 -> 配置,点击 HTTPS,点击 启用 HTTPS,选择 泛域名证书,点击 保存。
配置自动清理(可选)
在 1Panel 面板中,点击 计划任务 -> 创建计划任务,填写如下信息:
- 任务类型:Shell 脚本
- 任务名称:自动清理 docker 缓存
- 执行周期:每天
- 脚本内容:
rm /opt/1panel/docker/compose/docker-mirror/registry/* -r
部署完成
至此,代理服务部署完成,可以通过自己的子域名访问各个镜像仓库。
进阶配置
通过修改配置文件,可以对代理服务进行进一步的配置,比如认证、存储、缓存等。
详情请参考 Distribution Registry 文档。