Docker pull 使用代理

发现自己原来写错了qaq. 当时折腾的脑袋晕了, 记录错了… and 今天一拍脑门发现自己是 sb.

docker pull 用的是一个守护进程, 所以设置系统代理是无效的. 需要配置 service 的代理. 配置文件在 /etc/systemd/system/ 下新建 docker.service.d/proxy.conf. 如果是 rootless docker 则需要在用户级别的 systemd, 路径为 ~/.config/systemd/user/docker.service.d/proxy.conf

内容如下:

1
2
3
4
5
[Service]
Environment="HTTPS_PROXY=https://example.com:443"
Environment="HTTP_PROXY=http://example.com:80"
Environment="ALL_PROXY=socks5://example.com:1080"
Environment="NO_PROXY=example.com"

设置完了以后重启 docker deamon:

1
2
systemctl daemon-reload
systemctl restart docker.service

用户级别的 systemd 需要加 --user 参数

使用本地代理地址如 localhost, 0.0.0.0 时无效, 暂时不知道为什么. 解决方法很简单, 本地代理监听 all, 然后配置里写本机 ip 就行了.