由于众所周知的原因,Docker Hub 在中国大陆被禁止了。
本文搭建了一个公共 Docker Hub 镜像源。如果实在懒得自建的话,文末我会附上自己的镜像源供公开使用,但请不要滥用。
安装 Nexus
找一个目录,把 docker-compose.yml 丢进去。
下文使用 /opt/nexus 代替本目录。
1 | mkdir -p /opt/nexus |
1 | version: "3.8" |
1 | docker compose up -d |
等待几分钟后,获取初始密码。
1 | docker exec nexus cat /nexus-data/admin.password |
为 Docker Hub 添加 Docker Proxy Repository
登录进去后,默认要求你修改密码。
完成后来到 Administration-Repository-Repositories 页面。
创建代理仓库
新建一个仓库,选择 docker (proxy)。
在 Name 这里填入当前仓库的命名,例如 docker-proxy-dockerhub
在 Proxy - Remote storage 这里,配置 Docker Hub 代理时填入 https://registry-1.docker.io,配置 K8s 仓库时填入 https://k8s.gcr.io,配置 quay.io 仓库时填入 https://quay.io。
在 Proxy - Docker Index 这里,配置 Docker Hub 代理时选择 Use Docker Hub,配置其他仓库代理时选择 Use proxy registry(specified above)。
去掉 Proxy - Auto blocking enabled 这里的对勾。
去掉 Negative Cache - Not found cache enabled 这里的对勾。
可选只创建第一个重复操作,创建完成 3 个仓库:docker-proxy-dockerhub、docker-proxy-k8sgcr、docker-proxy-quayio。
创建聚合仓库
在 [Repository] - [Repositories] 中创建新仓库,类型为 docker (group)。
在 Name 这里填入当前仓库的命名,例如 docker-proxy-group
在 Repository Connectors 这里,勾选 HTTP 并填入一个未被占用的端口,必须与创建容器时映射的端口号一致。这里我使用 8002。
在 Group - Member repositorles 这里,将需要整合的仓库添加到右边,并按先后顺序排好。
配置 Docker 认证
在 Security - Realms 选项中,将 Docker Bearer Token Realm 添加到右边,保存即可。
配置 HTTPS
略,有些时候饭不能喂到嘴里,否则就没味道了。
我的公开镜像
镜像源:https://hub.20220303.xyz/。禁止滥用!禁止滥用!禁止滥用!
