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

群晖怎么让 docker 容器走代理

  •  
  •   chunkingName · 4 天前 · 2218 次点击

    注意:不是拉取镜像走代理,是让某一个 docker 容器走代理。 我在群晖装了 bitmagnet 搜刮种子,容器正常运行但是搜刮不出种子,我在国外服务器上部署的搜刮正常。因此可能是需要走代理。 那么怎么让 bitmagnet 这个 docker 容器走代理呢? 我在环境变量添加了 http_proxy:http://192.168.123.xxx:xxxx 不生效

    第 1 条附言  ·  2 天前
    谢谢各位的回答,我知道最好的方式是用路由器直接代理,只是我现在的路由器性能太弱,虽然刷了 Padavan,但开代理速度很慢,好像是 cpu 跟不上,vless 协议要实时解密好像。只是觉得为了一个前置路由要换个路由器有点不划算。
    我之前有另一个 docker 也需要代理,是群晖虚拟机装了个 openwrt 开了一个旁路由,然后群晖配置了一个 docker 网络,让这个 docker 走的这个网络。成功代理了,但是 bitmagnet 由于要与另一个数据库 docker 连接,所以这种代理方式一直报错。
    然后我今天发现,bitmagnet 成功搜刮到种子了,也就是说,不需要走代理。
    24 条回复    2024-06-18 19:57:18 +08:00
    yiyiwa
        1
    yiyiwa  
       4 天前
    起 docker 时加 -e proxy... ?
    monkey110
        2
    monkey110  
       4 天前
    dsm7? 我 dsm6.2.4 docker 容器 host 模式加环境变量[img][/img]是可以正常走代理
    mmdsun
        3
    mmdsun  
       4 天前
    可能需要另外安装软件走 tun 模式,没走 http 代理吧
    HashV2
        4
    HashV2  
       4 天前
    没有全局的配置么,我 unraid 有个全局配置的 proxy ,配玩 docker 和虚拟机都直接走代理,我一开始都不知道,装了个 win 虚拟机去下载 clash ,直接用谷歌搜索的,下载的时候突然愣住。
    tbg
        5
    tbg  
       4 天前
    直接控制面板-网络里面设置
    chunkingName
        6
    chunkingName  
    OP
       4 天前
    @tbg 我的需求是别的 docker 走正常网络,特定 docker 才代理。不然所有 docker 都代理吃不消
    wyxls
        7
    wyxls  
       4 天前
    得看网络走什么,普通 http 的话,直接-e http_proxy 和 https_proxy 就行了;其他的就得考虑在内部跑个 tun ,或者内外部想办法跑个网关,然后路由过去
    Curtion
        8
    Curtion  
       4 天前
    我是建议在路由器中开代理, 弄两个路由器,一个走代理一个不走, 修改网关来实现单客户端走代理,楼主这种需求可能还需要把容器网络设置为 host
    esee
        9
    esee  
       3 天前 via Android
    我的方法是容器用独立的 IP ,然后在路由器这边让这个 IP 走代理。
    largeflow
        10
    largeflow  
       3 天前 via iPhone
    之前有这个需求,蹲一个答案,现在用 pt 了
    LLaMA2
        11
    LLaMA2  
       3 天前
    看了下,你说的 bitmagnet 的上层 layout 是 alpine linux
    那么你 docker exec -it YOUR_DOCKER_IMG_NAME sh
    之后愉快的在 alpine linux 的 shell 中做你想做的事情,例如起 v2ray

    alpine 的 package 命令是 apk
    goukey
        12
    goukey  
       3 天前
    @yiyiwa 一楼说的对,docker run 的时候加-e http_proxy https_proxy socks_proxy 一般就行
    iislong
        13
    iislong  
       3 天前 via Android
    刚好昨天问了一嘴,
    ![docker-proxy]( https://a.saofu.eu.org/img/2311/docker-proxy.jpg)
    sendi
        14
    sendi  
       3 天前
    创建一个 sidecar 容器 需要走代理的链接到这个 sidecar 容器就行
    JensenQian
        15
    JensenQian  
       3 天前
    简单点就在群晖前面的路由器上搞个代理
    别折腾什么参数了
    还能让 apple tv 什么的也走代理
    折腾完了很舒服的
    sexyporn
        16
    sexyporn  
       2 天前 via Android
    局域网设置代理服务器啊
    chunkingName
        17
    chunkingName  
    OP
       2 天前
    @JensenQian 准备 618 看看有没有合适的路由器,有推荐的吗?
    JensenQian
        18
    JensenQian  
       2 天前 via Android
    @chunkingName 看你预算了,硬具有能刷机挺多的
    zcmi
        19
    zcmi  
       1 天前
    @chunkingName 便宜的 7981 ,或者 ipq6000 的亚瑟。贵点的 7986 或者软路由
    atpx4869love
        20
    atpx4869love  
       1 天前 via iPhone
    @largeflow 黑裙 软路由 代理 感觉配合起来好麻烦
    fox2081
        21
    fox2081  
       1 天前
    @atpx4869love #20 可以试试我的方案,两个路由,一级主路由不折腾,供家里人正常使用,二级路由刷机挂代理,有需求的设备连这个就行
    Chaiii
        22
    Chaiii  
       5 小时 30 分钟前   ❤️ 1
    看看我写的这篇教程咯:

    https://blog.chai.ac.cn/posts/docker-proxy.html

    很多人没有区分清楚是 pull 的时候代理还是 run 和 build 的时候代理。

    至于容器里面的应用,会不会遵循环境变量 `HTTP_PROXY` 和 `HTTPS_PROXY` 走系统代理,是需要另外设置的,比如 `apt` 就要手动设置。

    我觉得最简单省事的做法还是用旁路由 + 路由规则名单设置
    Chaiii
        23
    Chaiii  
       5 小时 24 分钟前
    @Chaiii 补充一下,针对楼主的情况,我更觉得有两种可能:

    1. bitmagnet 不遵循环境变量中的代理设置 (我没用过不确定哈)
    2. bitmagnet 确实使用了你的代理,但是代理规则未生效(走了直连,开全局 + tun 试试看)?

    如果你不想玩旁路由,还可以试试用 iptables 级别搞透明代理。
    PaPaBoom
        24
    PaPaBoom  
       1 小时 30 分钟前
    @Chaiii #22 照着您的教程配置了群晖 DSM 7.2 ,成功通过 http 代理 pull 镜像,免去了系统或路由代理,非常感谢。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2888 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 13:27 · PVG 21:27 · LAX 06:27 · JFK 09:27
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.