分享一下我的 docker aria2 镜像 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
opengg
V2EX    Linux

分享一下我的 docker aria2 镜像

  •  
  •   opengg 2017-03-12 19:35:22 +08:00 11695 次点击
    这是一个创建于 3204 天前的主题,其中的信息可能已经有所发展或是发生改变。

    虽然 aria2 镜像已经满天飞, 但我没找到符合个人品味的. 于是我花了一点时间写了一个, 在此与诸位分享.

    特色

    1. 极简

    精简的层级, 极致的镜像体积.

    基本上整个镜像就是 alpine + aria2, 没有其他依赖, 镜像体积只有 5.7MB.

    2. 强大

    • 可以指定执行 uid/gid, 兼容宿主系统文件权限
    • 自动创建配置 aria2.conf
    • 自动修复 /config 目录权限
    • 兼容 docker kill 的 graceful exit 机制
    • 兼容 docker logs 的日志机制

    使用

    1. 使用 id 命令确定 uid/gid

       $ id opengg uid=1001(opengg) gid=1002(users) groups=1002(users) 
    2. 初始化配置和下载目录

      mkdir /storage/aria2/config # config 路径示例 chown -R 1001:1002 /storage/aria2/config find /storage/aria2/config -type d -exec chmod 755 {} + find /storage/aria2/config -type f -exec chmod 644 {} + mkdir /storage/aria2/downloads # downloads 路径示例 chown -R 1001:1002 /storage/aria2/downloads find /storage/aria2/downloads -type d -exec chmod 755 {} + find /storage/aria2/downloads -type f -exec chmod 644 {} + 
    3. 运行以下命令初始化容器

      docker run \ -d \ --name aria2 \ -u=1001:1002 \ -v /storage/aria2/config:/config \ -v /storage/aria2/downloads:/downloads \ -p 6800:6800 \ opengg/aria2 

    镜像源码

    在此附上源码, 欢迎指正

    https://hub.docker.com/r/opengg/aria2/

    https://github.com/OpenGG/docker-aria2

    31 条回复    2020-02-24 00:38:45 +08:00
    beginor
        1
    beginor  
       2017-03-12 21:02:23 +08:00 via Android
    这个好,正准备做呢
    beginor
        2
    beginor  
       2017-03-12 21:04:58 +08:00 via Android
    再整个 aria2 Web ui 就更好了
    Antidictator
        3
    Antidictator  
       2017-03-12 21:13:03 +08:00
    和 IDM 比,如何?
    crs0910
        4
    crs0910  
       2017-03-12 21:28:28 +08:00 via Android
    不错
    nanpuyue
        5
    nanpuyue  
       2017-03-12 21:28:51 +08:00
    有个问题,这种单应用,为何要用 docker 镜像?
    opengg
        6
    opengg  
    OP
       2017-03-12 22:44:18 +08:00
    @beginor webui 用 github 上的就可以了, 不需要部署到本地服务器
    opengg
        7
    opengg  
    OP
       2017-03-12 22:45:00 +08:00
    @nanpuyue 部署和管理进程还是费劲, 不如交给 docker.
    opengg
        8
    opengg  
    OP
       2017-03-12 22:54:22 +08:00
    @Antidictator 跟 idm 的场景不同, idm 是在用户端, 下载到用户的硬盘上, docker 适合在服务器上部署, 比如说这个 docker aria2, 做下载服务器用.
    messyidea
        9
    messyidea  
       2017-03-12 23:03:30 +08:00   1
    我还是习惯去 github 下个静态链接的版本配合自己的配置文件直接跑
    更新的话只需要替换二进制文件就行了 = =
    https://github.com/q3aql/aria2-static-builds.git
    phithon
        10
    phithon  
       2017-03-12 23:06:34 +08:00
    感谢~
    minsnia
        11
    minsnia  
       2017-03-12 23:35:01 +08:00
    强迫症表示 aria2 为什么不用最新版
    Antidictator
        12
    Antidictator  
       2017-03-13 00:35:46 +08:00 via Android
    @opengg great and thx
    ETiV
        13
    ETiV  
       2017-03-13 04:44:40 +08:00 via iPhone
    看到 opengg 就想到了优酷播放器
    ETiV
        14
    ETiV  
       2017-03-13 04:46:00 +08:00 via iPhone
    & 我一般都去掉 -x -s 最大 16 的参数限制,自己编译 aria2 ……
    iTea
        15
    iTea  
       2017-03-13 07:20:23 +08:00 via iPhone
    感谢分享:)
    laincat
        16
    laincat  
       2017-03-13 09:05:56 +08:00 via iPhone
    这个最近刚想找个类似的来用,感谢。
    opengg
        17
    opengg  
    OP
       2017-03-13 10:26:34 +08:00
    @minsnia
    是最新版 Aria2.

    实际上有三个分支:

    opengg/aria2:latest 对应 master 分支, alpine:latest 系统 + aria2:edge, aria2 版本为最新的 1.31.0, 默认这个分支
    opengg/aria2:stable 对应 stable 分支, alpine:latest 系统 + aria2:latest, aria2 版本为旧一点的 1.26.1, 适合稳定人士使用
    opengg/aria2:edge 对应 edge 分支, alpine:edge 系统 + aria2:edge, aria2 版本为最新的 1.31.0, 适合激进人士使用

    具体可以看源码
    https://github.com/OpenGG/docker-aria2
    opengg
        18
    opengg  
    OP
       2017-03-13 10:28:07 +08:00
    @ETiV
    aria2 16 线程基本够用了, 我试过百度云能跑满 30MB/s, 所以就先这样了
    crystone
        19
    crystone  
       2017-03-13 10:57:49 +08:00
    你们真牛
    kojirou
        20
    kojirou  
       2017-03-13 19:15:32 +08:00
    一行命令的事为啥用 docker 。。
    opengg
        21
    opengg  
    OP
       2017-03-14 20:21:12 +08:00   1
    @kojirou
    1. docker 部署方便, 尤其是在 nas 上, 有些系统安装依赖和包很麻烦, 比如群晖, 用 docker 就更快捷.
    2. 管理进程费劲, 用 docker 有 auto start/restart
    fetich
        22
    fetich  
       2017-11-23 10:50:00 +08:00
    楼主,我是在群晖上使用 Docker。
    请问第一步和第二步在哪里输入命令呢?第三步初始化容器,在群晖里只需要点击按钮即可,没找到可以输入命令的地方啊?
    fetich
        23
    fetich  
       2017-11-24 09:26:11 +08:00
    群晖的操作流程太傻瓜了,设置完毕,特意回来留言。
    fetich
        24
    fetich  
       2017-11-24 15:14:20 +08:00
    楼主,为什么下载的进度无法保存呢?在群晖 DSM 中重启容器后,已完成的任务和做种任务都消失了,是 aria2.session 的权限问题么?该怎么解决呢?
    Maskeney
        25
    Maskeney  
       2019-04-28 12:40:13 +08:00 via Android
    现在为什么改成-u 指定用户 UID GID 了…这个参数搞得我一脸蒙蔽。为什么不用-e UID=1000 -e GID=1000 …之前用 portainer,表示并不知道这个-u 应该填哪一项。昨晚上试着-v 多挂了几个数据卷。结果运行之后自动关闭,也没来得及看日志,不知道啥原因
    opengg
        26
    opengg  
    OP
       2019-05-06 15:10:12 +08:00
    @Maskeney
    -u 是 docker 的参数,docker 容器会以这个 uid/gid 执行。
    -e uid=xxx 是 dockerfile 的参数,docker 容器先以 root 运行,然后在容器内部脚本被执行时降权到 uid

    uid/gid 通过 id 命令来确定。
    opengg
        27
    opengg  
    OP
       2019-05-06 15:14:13 +08:00
    @fetich
    已完成的任务和做种任务消失,可能是权限问题吧,你得确保 docker 容器运行用户对 config 目录有合适的读写权。
    fetich
        28
    fetich  
       2019-05-06 17:23:39 +08:00
    @opengg
    天哪,楼主出宫!

    这个问题已解决,反反复复尝试了好多次,记得和 session 记录、磁链保存的配置项有关。
    Maskeney
        29
    Maskeney  
       2019-05-06 18:10:03 +08:00
    @opengg #26 好吧 作为刚上手的初级用户 喜欢用 portainer 这种图形化来运行 docker,portainer 似乎是只有 env 选项,没有-u 选项可供输入,市面上很多预编译好的镜像似乎更倾向于用-e 来传递 UID GID,虽然看起来用-u 直接指定更好
    Maskeney
        30
    Maskeney  
       2019-05-25 00:39:48 +08:00
    楼主请问后续有给这个镜像添加设置 umask 的功能么?我是给每个容器都创建了各自的 daemon 用户,虽然 /etc/profile 里设置了全局 umask=0002,但是 aria2 运行起来还是按照默认的 0022umask,因此会导致下载的文件权限不符合预期
    fetich
        31
    fetich  
       2020-02-24 00:38:45 +08:00
    大兄弟,不知道你是否还在上 V 站。

    有个奇怪的事,1.35.0 已经出来数个月了,为何拉取最新镜像仍然是 1.34.0 的版本?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2553 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 14:36 PVG 22:36 LAX 06:36 JFK 09:36
    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