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

群晖怎么让 docker 容器走代理

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

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

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

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

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

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

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

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

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

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