V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zhgjsony
V2EX  ›  Docker

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

  •  
  •   zhgjsony · 165 天前 · 1735 次点击
    这是一个创建于 165 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    感谢!

    9 条回复    2024-06-14 17:56:46 +08:00
    Mystery0
        1
    Mystery0  
       165 天前 via Android
    帮顶,以前似乎找不到这个东西,要么就都走了代理
    YaD2x
        2
    YaD2x  
       165 天前
    参考 docker 代理的几种方式: https://cloud.tencent.com/developer/article/1806455
    anubu
        4
    anubu  
       165 天前
    似乎不存在代理冲突的问题,自动更新镜像,仅需要 watchtower 和 dockerd 通过代理访问 dockerhub ,和其它业务容器没有关系。配置 watchtower 容器和 dockerd 走代理,不会导致其它业务容器走代理。
    zhgjsony
        5
    zhgjsony  
    OP
       165 天前
    @YaD2x
    @Navee
    @anubu
    根据网上的教程,其实符合我要求的应该就是对 Dockerd 设置代理,但是即使是官方的教程,创建 conf 文件后,对当前版本的群晖系统自带的 Docker 无效。
    设置完成后执行“systemctl show --property=Environment docker”,结果为“Environment=”。
    totoro625
        6
    totoro625  
       164 天前
    群晖新建一个 vm ,指定该 vm 走旁路由,里面安装一个 docker registry 作为私有镜像,然后群晖通过该镜像拉取
    9H93q6EKnTVFQDRq
        7
    9H93q6EKnTVFQDRq  
       163 天前
    还有个办法是套 cdn ,网上有 cloudflare worker 的代码,我试了也挺简单
    StartMenu
        8
    StartMenu  
       163 天前
    @zhgjsony 群晖的 docker 配置文件路径跟 docker 官网说的是不一样的。
    DSM7.2 的 docker 配置文件:
    /usr/syno/etc/packages/ContainerManager/dockerd.json
    /var/packages/ContainerManager/etc/dockerd.json
    zhgjsony
        9
    zhgjsony  
    OP
       161 天前   ❤️ 1
    对于群晖 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 验证
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2938 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 08:13 · PVG 16:13 · LAX 00:13 · JFK 03:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.