Error response from daemon: Get "https://registry-1.docker.io/v2/": context deadline exceeded (Client.Timeout exceeded while awaiting headers)

这个方案是常用的通过 systemd drop-in 文件为 Docker 设置代理的方法,只要您的代理地址和配置正确,它是可行的。具体解释如下:

1. 第一步创建目录:

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

这一步确保目录存在,用于存放 Docker 服务的额外配置文件。

2. 第二步使用 heredoc 创建配置文件 /etc/systemd/system/docker.service.d/proxy.conf,内容如下:

[Service]
Environment="HTTP_PROXY=http://10.0.0.1:7890/"
Environment="HTTPS_PROXY=http://10.0.0.1:7890/"
Environment="NO_PROXY=localhost,127.0.0.1,.example.com"

这部分将为 Docker 服务设置 HTTP、HTTPS 代理及免代理域。

3. 第三步执行 systemctl daemon-reload 和 systemctl restart docker 以使配置生效。

只要您的网络环境中代理地址 http://10.0.0.1:7890/ 是正确可用的,这个方案是行得通的。如果有其他特殊需求(比如需要设置额外变量或调整免代理列表),可以进一步修改该配置文件。