0x03

已经很久没有写过博客了。其实也没什么特别想写的,单纯记录一下最近干了些什么(


使用Cloudflare Workers反向代理Docker Hub

由于某些神秘原因,在国内是无法直连Docker Hub的,并且各个公开镜像站也都消失了。那么如果要访问Docker Hub就有两种方式:为docker本身配置镜像地址,或为守护进程dockerd配置代理。

自建Docker Hub反向代理并为docker配置

这种方法的原理是国内可以正常访问到Cloudflare的相关服务(虽然比较慢),而Cloudflare提供了Workers这样的云函数计算服务;但这里我们的计算量并不大,更多地是把Workers当成一个反向代理服务器使用。

如果不想折腾太多,则只需要在Cloudflare上注册开通Workers,之后直接将cloudflare-docker-proxy部署到自己账户下的Workers就可以了。

对于未托管在

为守护进程配置代理

如果嫌创建Cloudflare Workers太麻烦,在docker机器所在的主机或局域网内正好有设备开启了代理服务器功能,那么可以直接设置docker使用此代理去连接Docker Hub.

systemd管理运行的服务并不会直接使用当前shell环境的代理环境变量,因此需要自己创建相关的配置文件并设置:

sudo mkdir -p /etc/systemd/system/docker.service.d
sudo vim /etc/systemd/system/docker.service.d/proxy.conf

向配置文件中写入代理服务器设置:

[Service]
Environment="HTTP_PROXY=http://<username>:<password>@<host>:<port>/"
Environment="HTTPS_PROXY=http://<username>:<password>@<host>:<port>/"
Environment="NO_PROXY=localhost,127.0.0.1,.example.com"

记得把上面的host, port等替换成你自己的,如果代理服务器没有配置用户名和密码可以直接将<username>:<password>@删去。

之后需要重载daemon并重启dockerd:

sudo systemctl daemon-reload
sudo systemctl restart docker

这时再进行docker pull, 应该就没有问题了。