使用 Caddy 反向代理 dockerhub 需要几步?

使用 Caddy 反向代理 dockerhub 需要几步?

💡 原文中文,约3100字,阅读约需8分钟。
📝

内容提要

几个月前,中国大陆失去了公共的dockerhub镜像。有人使用Cloudflare Workers、nginx和自建registry来自建dockerhub反代。作者选择使用caddy,因为配置简单且访问质量好。作者使用mitmproxy抓包,配置dockerd使用本机8080端口进行代理。作者在systemd服务中设置代理环境变量。作者成功拉取了一个较小的docker镜像。作者解释了三个域名需要反代的原因,并给出了反代的方法。作者还介绍了如何设置docker使用反代。最后,作者建议验证是否成功反代。

Q&A

为什么中国大陆失去了公共的dockerhub镜像?

由于众所周知的原因,中国大陆境内失去了所有公共的dockerhub镜像。

使用Caddy进行dockerhub反代的优势是什么?

Caddy的配置简单,且通过境外服务器进行反向代理的访问质量优于Cloudflare。

如何设置docker使用反代?

可以在docker命令前加上反代域名,或修改/etc/docker/daemon.json文件设置registry-mirrors。

反代过程中需要处理哪些域名?

需要反代的域名包括registry-1.docker.io、auth.docker.io和production.cloudflare.docker.com。

如何验证dockerhub反代是否成功?

可以通过抓包检查请求是否走了自己的域名,或者观察镜像下载速度。

在systemd服务中如何设置代理环境变量?

可以在/etc/systemd/system/docker.service.d/http-proxy.conf中设置HTTP_PROXY和HTTPS_PROXY环境变量。

➡️

继续阅读