问题背景
现在国内已经完全墙了 dockerhub 导致镜像无法正常拉取,除了设置国内的镜像源加速外,以下再介绍两种方式
主流Linux方案
- 使用 proxychains 这个工具可以让执行的命令走代理
- 增加docker的代理配置 新增如下文件
mkdir -p /etc/systemd/system/docker.service.d
vim /etc/systemd/system/docker.service.d/http-proxy.conf
新增的文件中添加如下内容:
[Service]
Environment="HTTP_PROXY=http://127.0.0.1:8118"
Environment="HTTPS_PROXY=http://127.0.0.1:8118"
Environment="NO_PROXY=localhost,127.0.0.1"
重启 docker 进程生效
sudo systemctl daemon-reload
sudo systemctl restart docker
群晖方案
群晖无法很好的安装 socks 转 http 协议的工具,如 privoxy,也无法安装 proxychains,那么应该如何解决这个问题?
根据测试的结论,还是使用 systemd,步骤如下:
- 创建以下目录和文件
/etc/systemd/system/pkg-Docker-dockerd.service.d/http-proxy.conf
# 7.1版本的目录,如果是其他版本目录结构不同
2. 文件内增加如下内容:
```sh
[Service]
Environment="HTTP_PROXY=socks5://127.0.0.1:1086"
Environment="HTTPS_PROXY=socks5://127.0.0.1:1086"
# 也支持使用 socks5 协议
- 重启服务生效
systemctl daemon-reload
systemctl restart pkg-Docker-dockerd.service
如果修改了代理地址,也需要重启生效,为了减少对运行容器的影响,建议开启 live restore
评论