群晖 DSM 7.2 为 Container Manager设置代理

群晖 DSM 7.2 为 Container Manager设置代理
DTZSGHNR为什么要配置代理?
国内网络环境下,访问 Docker 官方镜像库经常遇到超时或拉取失败。通过配置 HTTP 或 SOCKS5 代理,可以让 Docker 顺利下载和更新镜像。
操作步骤
SSH 登录群晖 NAS
- 在 DSM 控制面板开启 SSH 服务(控制面板 → 终端机与 SNMP)。
- 用命令行工具连接(Windows 推荐 PuTTY,Mac/Linux 直接用 Terminal):
1
ssh <用户名>@<NAS_IP>
- 切换到 root 权限:
1
sudo -i
创建 Docker 服务配置目录
1
mkdir -p /etc/systemd/system/pkg-ContainerManager-dockerd.service.d
创建并编辑代理配置文件
- 新建配置文件:
1
touch /etc/systemd/system/pkg-ContainerManager-dockerd.service.d/http-proxy.conf
- 编辑文件:
1
vi /etc/systemd/system/pkg-ContainerManager-dockerd.service.d/http-proxy.conf
- 按
i
进入插入模式,粘贴如下内容(根据你的代理类型选择):
HTTP/HTTPS 代理:
1
2
3
4[Service]
Environment="HTTP_PROXY=http://192.168.1.3:10808"
Environment="HTTPS_PROXY=http://192.168.1.3:10808"
Environment="NO_PROXY=localhost,127.0.0.1"SOCKS5 代理:
1
2
3
4[Service]
Environment="HTTP_PROXY=socks5://192.168.1.3:10808"
Environment="HTTPS_PROXY=socks5://192.168.1.3:10808"
Environment="NO_PROXY=localhost,127.0.0.1"带认证的 SOCKS5 代理:
1
2
3
4[Service]
Environment="HTTP_PROXY=socks5://用户名:密码@192.168.1.3:10808"
Environment="HTTPS_PROXY=socks5://用户名:密码@192.168.1.3:10808"
Environment="NO_PROXY=localhost,127.0.0.1"请将
192.168.1.3:10808
和用户名:密码
替换为你自己的代理信息。- 新建配置文件:
保存并退出 vi
- 按
Esc
退出插入模式 - 输入
:wq
保存并退出 - 如果误操作,输入
:q!
强制退出不保存
- 按
重新加载并重启 Docker 服务
1
2systemctl daemon-reload
systemctl restart pkg-ContainerManager-dockerd.service验证代理是否生效
- 查看环境变量:
1
systemctl show --property=Environment pkg-ContainerManager-dockerd.service
- 若输出包含你的代理信息,说明配置成功。
- 拉取镜像测试:
1
docker pull busybox
- 容器内代理(可选):
1
2
3
4docker run -e http_proxy=http://your-proxy:port \
-e https_proxy=http://your-proxy:port \
-e no_proxy=localhost,127.0.0.1 \
your-image
- 查看环境变量:
常见问题
拉取镜像依然超时? 检查代理端口、防火墙和配置路径。代理类型不对? HTTP/HTTPS/SOCKS5 需按实际情况填写,SOCKS5 记得加前缀。容器内网络依然不通? 需在 `docker run` 时加环境变量,或在 Dockerfile 里设置。
如有更多代理技巧或遇到新问题,欢迎在评论区交流!
提示
- 主要关注群晖 Container Manager 配置文件的具体位置,和原生 Docker 有区别;
- 使用
docker info
可以查询到版本信息,版本太低的话请参考本文给出的第二种配置方法。
最近又见识到了一些神奇的骚操作,考虑到在将来 Docker 的国内各个镜像站可能变得不可用,需要未雨绸缪一下。有旁路由自然是好的,但现在打算用 Proxy 来解决这个问题。由于群晖的 Container Manager 是基于 Docker 的,但部分配置路径不同,所以特意记录一下。
注意事项
- 本教程在群晖 DSM 7.2 版本通过测试,假定具备 root 权限
- 假定你已有可以代理 HTTP 或 SOCKS 协议的端口:例如 192.168.50.100:7893
- 尽可能引用官方文档,本文主要针对需要代理的部分的设置
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果