群晖的 Docker 无法使用系统代理拉取镜像 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要把任何和邀请码有关的内容发到 NAS 节点。

邀请码相关的内容请使用 /go/in 节点。

如果没有发送到 /go/in,那么会被移动到 /go/pointless 同时账号会被降权。如果持续触发这样的移动,会导致账号被禁用。
mekingname
V2EX    NAS

群晖的 Docker 无法使用系统代理拉取镜像

  •  
  •   mekingname 2023-10-12 22:27:50 +08:00 4834 次点击
    这是一个创建于 734 天前的主题,其中的信息可能已经有所发展或是发生改变。

    背景:已经在 DSM 里面设置了代理。

    Docker 的“注册表”功能,可以正常显示镜像列表,说明代理生效了。

    双击注册表中的镜像名称,无法下载,查看日志,显示:Fail to pull [镜像名].

    ssh 登录群晖,执行 docker pull 镜像名,无法正常下载

    export 手动设置代理,再 docker pull 命令,还是无法正常下载。

    27 条回复    2024-07-19 12:09:53 +08:00
    hefish
        1
    hefish  
       2023-10-12 22:38:56 +08:00
    这个肯定是不行的,
    docker pull 并不是他自己去 pull ,是指挥后台的 dockerd 去 pull 。
    所以要修改启动 dockerd 的参数。
    itskingname
        2
    itskingname  
       2023-10-13 09:58:22 +08:00
    @hefish 群晖的 Docker 怎么更换 dockerd 的启动参数呢
    alexhx
        3
    alexhx  
       2023-10-13 10:06:43 +08:00
    忘了之前咋设置的了,我的现在是只能用 docker pull 命令,Web 端不行
    itskingname
        4
    itskingname  
       2023-10-13 10:09:09 +08:00
    @alexhx 我现在是 docker pull 命令都会超时
    huhhz
        5
    huhhz  
       2023-10-13 10:16:27 +08:00
    好像可以这么用
    docker pull --proxy=http://proxy.example.com:8080 <image>
    Huelse
        6
    Huelse  
       2023-10-13 10:25:49 +08:00
    qnap 就不需要自己设置代理,拉取很快
    hefish
        7
    hefish  
       2023-10-13 11:57:33 +08:00
    @itskingname 忘了,搜搜看吧。 我现在是临时搞个全局代理。 所以没设。
    itskingname
        8
    itskingname  
       2023-10-13 12:57:43 +08:00
    @hefish 临时的全局代理我也测试过了,还是拉不动
    itskingname
        9
    itskingname  
       2023-10-13 12:58:50 +08:00
    @huhhz 我看 docker 文档里面没有写这种方式
    hefish
        10
    hefish  
       2023-10-13 12:59:59 +08:00
    @itskingname 我的意思是透明的那种代理。 你等下,我来看看。
    hefish
        11
    hefish  
       2023-10-13 13:02:15 +08:00   2
    @itskingname 在 /var/packages/Docker/etc/dockerd.json 里。

    "proxies": {
    "default": {
    "httpProxy": "http://proxy.example.com:3128",
    "httpsProxy": "https://proxy.example.com:3129",
    "noProxy": "*.test.example.com,.example.org,127.0.0.0/8"
    }
    }

    改好了 重启 dockerd
    huhhz
        12
    huhhz  
       2023-10-13 14:10:27 +08:00
    @huhhz
    @itskingname 不好意思记错了 ,之前用过的是 build 的时候代理,记成 pull 了。。。。。
    docker build --build-arg HTTP_PROXY="http://proxy.example.com:3128" .
    itskingname
        13
    itskingname  
       2023-10-13 14:56:04 +08:00
    @huhhz build 可以用,但是 pull 的时候没法
    lvtuyukuai
        14
    lvtuyukuai  
       2023-10-13 15:14:17 +08:00
    「设置代理软件 - 使其能代理局域网其他设备」,因为拉取镜像不是经常性的动作,我目前是用这个方法处理的。
    mianlaodie
        15
    mianlaodie  
       2023-10-13 18:43:26 +08:00 via Android
    群晖的那个出问题很久了,我现在是 SSH 过后切换 ROOT 用户拉取
    mekingname
        16
    mekingname  
    OP
       2023-10-14 21:34:45 +08:00
    @mianlaodie 我 ssh 上去用命令拉也超时
    mekingname
        17
    mekingname  
    OP
       2023-10-14 21:36:08 +08:00
    @hefish 在群晖里面没有 /var/packages/Docker 这个文件夹
    hefish
        18
    hefish  
       2023-10-14 23:28:09 +08:00
    @mekingname 我是 6.1 的黑裙。 你用 ps ax|grep dockerd 找找。
    charley008
        19
    charley008  
       2024-05-10 12:48:51 +08:00   4
    @mekingname
    dsm7.2
    docker 本身走代理
    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 验证

    如果是其他版本的 dsm 的话。自己找找相应的文件名
    X-Force
        20
    X-Force  
       2024-06-06 22:33:39 +08:00
    @charley008 #19 这样配置之后,是 docker 引擎和拉取镜像时使用代理,还是包括容器里的应用都会默认走代理?
    liujl
        21
    liujl  
       2024-06-07 15:21:02 +08:00   1
    1.添加 /etc/docker/env 文件
    export HTTP_PROXY=127.0.0.1:8899


    2. 编辑 /etc/init/pkg-Docker-dockerd.conf 文件

    exec /var/packages/Docker/target/usr/bin/dockerd --config-file /var/packages/Docker/etc/dockerd.json
    改为

    #exec /var/packages/Docker/target/usr/bin/dockerd --config-file /var/packages/Docker/etc/dockerd.json
    script
    source /etc/docker/env
    /var/packages/Docker/target/usr/bin/dockerd --config-file /var/packages/Docker/etc/dockerd.json
    end script

    3. 然后,重启 docker 服务,
    停止 docker /var/packages/Docker/scripts/start-stop-status stop
    启动 docker /var/packages/Docker/scripts/start-stop-status start

    接着,你就尽情的 pull 吧,速度拉满

    黑群 6.2.3 验证可用,
    群晖 7 不知道能不能用,如果有人验证了群晖 7 ,可以留言帮助其他人,谢谢!
    StarUDream
        22
    StarUDream  
       2024-06-11 22:40:38 +08:00
    和 #19 一样也可以直接修改 `/usr/local/lib/systemd/system/pkg-ContainerManager-dockerd.service` 这个文件添加环境变量。
    happydanye
        23
    happydanye  
       2024-06-18 09:05:18 +08:00
    @liujl 测试有效,感谢!
    happydanye
        24
    happydanye  
       2024-06-18 09:06:20 +08:00
    @liujl 不过为了以防万一,我加了两个:
    export HTTP_PROXY=127.0.0.1:8899
    export HTTPS_PROXY=127.0.0.1:8899
    liujl
        25
    liujl  
       2024-06-20 17:59:20 +08:00 via Android
    @happydanye 您是群晖 7 成功了吗?
    uclinch
        26
    uclinch  
       2024-07-03 16:24:05 +08:00
    @charley008
    我的系统版本是群晖 DSM 7.2.1 update5

    亲测按你的步骤操作最后可用。
    不过中间遇到了点问题,按你的步骤

    touch /etc/systemd/system/pkg-ContainerManager-dockerd.service.d/http-proxy.conf
    vim http-proxy.conf
    然后重启 docker 不行,,没有环境变量

    我直接 vim /etc/systemd/system/pkg-ContainerManager-dockerd.service.d/http-proxy.conf
    修改内容
    然后

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

    就可以了。
    happydanye
        27
    happydanye  
       2024-07-19 12:09:53 +08:00
    @liujl 黑裙 6.2
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     897 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 110ms UTC 20:46 PVG 04:46 LAX 13:46 JFK 16:46
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86