请教如何简单地设置让 Docker 仅在 Pull 时使用代理?

16 天前
 zhgjsony

家里的群晖跑了几十个 docker 服务,目前使用 watchtower 每天计划任务更新,数年来相安无事。 前几天 Docker 直连被和谐以后,我再没收到过 watchtower 更新成功的邮件。 其实我有持续运行的 openclash ,只是一直不想让容器的流量经过旁路由。

我的问题是: 有什么最简单的方式(不要让我重新部署目前的几十个容器),让群晖访问 DockerHub 和更新容器时走代理,而容器本身不走代理?

感谢!

1087 次点击
所在节点    Docker
9 条回复
Mystery0
16 天前
帮顶,以前似乎找不到这个东西,要么就都走了代理
YaD2x
16 天前
参考 docker 代理的几种方式: https://cloud.tencent.com/developer/article/1806455
Navee
16 天前
anubu
16 天前
似乎不存在代理冲突的问题,自动更新镜像,仅需要 watchtower 和 dockerd 通过代理访问 dockerhub ,和其它业务容器没有关系。配置 watchtower 容器和 dockerd 走代理,不会导致其它业务容器走代理。
zhgjsony
16 天前
@YaD2x
@Navee
@anubu
根据网上的教程,其实符合我要求的应该就是对 Dockerd 设置代理,但是即使是官方的教程,创建 conf 文件后,对当前版本的群晖系统自带的 Docker 无效。
设置完成后执行“systemctl show --property=Environment docker”,结果为“Environment=”。
totoro625
15 天前
群晖新建一个 vm ,指定该 vm 走旁路由,里面安装一个 docker registry 作为私有镜像,然后群晖通过该镜像拉取
i571
14 天前
还有个办法是套 cdn ,网上有 cloudflare worker 的代码,我试了也挺简单
StartMenu
14 天前
@zhgjsony 群晖的 docker 配置文件路径跟 docker 官网说的是不一样的。
DSM7.2 的 docker 配置文件:
/usr/syno/etc/packages/ContainerManager/dockerd.json
/var/packages/ContainerManager/etc/dockerd.json
zhgjsony
12 天前
对于群晖 7.2 ,方法如下,网上搜的都不对:
mkdir -p /etc/systemd/system/pkg-ContainerManager-dockerd.service.d
touch /etc/systemd/system/pkg-ContainerManager-dockerd.service.d/http-proxy.conf
vim http-proxy.conf

编辑并保存:
[Service]
Environment="HTTP_PROXY=http://192.168.1.3:1088"
Environment="HTTPS_PROXY=http://192.168.1.3:1088"
Environment="NO_PROXY=localhost,127.0.0.1"

然后:
systemctl daemon-reload
systemctl restart pkg-ContainerManager-dockerd.service
systemctl show --property=Environment pkg-ContainerManager-dockerd.service 验证

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1048454

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX