iStoreOS / OpenWrt:Docker 代理配置完整指南(2026 实测可用)
编辑
16
2026-01-05
iStoreOS / OpenWrt:Docker 代理配置完整指南(2026 实测可用)
在 iStoreOS / OpenWrt 上配置 Docker 代理时,很多人会遇到一个共同问题: 在 daemon.json 中写入代理配置会导致 dockerd 无法启动。
经过 2026 年的实测验证,本文给出一套稳定、可复用、官方仓库直连无压力的 Docker 代理配置方案。
📌 背景:为什么 daemon.json 不生效?
在 iStoreOS / OpenWrt 中:
Docker 不支持在
daemon.json中使用proxies字段一旦写入该字段,dockerd 会直接启动失败
docker info不显示代理镜像拉取失败或超时
最终确认:
✔️ 必须通过 /etc/init.d/dockerd 注入环境变量,才能让 Docker 使用代理
这是目前唯一稳定、可控、兼容 procd 的方式。
✅ 最终可用方案:修改 dockerd 启动脚本注入代理
1. 编辑启动脚本
路径:
代码
/etc/init.d/dockerd
找到:
bash
procd_open_instance
procd_set_param stderr 1
在下面插入(必须保持单行结构):
bash
procd_set_param env \
HTTP_PROXY="http://xxxxxxxx" \
HTTPS_PROXY="http://xxxxxxxxxx" \
NO_PROXY="127.0.0.1,localhost"
⚠️ 注意事项
不能写成多行
procd_set_param env KEY=...procd 会覆盖前面的,只保留最后一个
所以必须写成同一行(或使用反斜杠续行)
2. 重启 Docker 服务
bash
chmod +x /etc/init.d/dockerd
/etc/init.d/dockerd restart
3. 验证代理是否成功注入
查看 dockerd 是否运行:
bash
ps | grep dockerd
查看环境变量:
bash
cat /proc/$(pidof dockerd)/environ | tr '\0' '\n' | grep -i proxy
你应该看到:
代码
HTTP_PROXY=http://xxxxxxx
HTTPS_PROXY=http://xxxxxx
NO_PROXY=127.0.0.1,localhost
这说明代理已经成功注入 dockerd。
4. 测试镜像拉取
bash
docker pull nginx
docker pull busybox
docker pull jc21/nginx-proxy-manager
如果输出包含:
代码
Pull complete
说明代理完全生效。
🎉 最终效果
Docker 所有流量走代理
官方仓库直连稳定快速
不依赖国内镜像源
配置干净、可维护、可复用
完全兼容 iStoreOS 的 procd 启动机制
- 0
- 0
-
分享