【自用分享】Motrix Arm64 Docker 镜像,适用于无头树莓派

分享一个自用的 Motrix 镜像,基于 jlesage/docker-baseimage-guiMotrix 安装在 docker ,可以通过 VNC 或者网页访问。

Motrix 的详细介绍: https://www.appinn.com/new-motrix/

项目地址:https://github.com/eMUQI/motrix-arm64-vnc

详细教程: 使用 Docker 在树莓派上安装 Moritx 下载工具 - Wulu's Blog

image.png

用法说明

  1. 在宿主机上创建项目目录,并在该目录中新建 docker-compose.yml 文件。

    mkdir motrix-server
    cd motrix-server
    touch docker-compose.yml
    
  2. 将以下内容写入 docker-compose.yml 文件:

    services:
      motrix:
        image: emuqi/motrix-arm64-vnc:latest
        container_name: motrix-vnc
        ports:
          # 5800: 用于 noVNC (Web 浏览器) 访问的端口
          - "5800:5800"
          # 5900: (可选) 用于标准 VNC 客户端直接访问的端口
          - "5900:5900"
        volumes:
          # 将宿主机的 ./data 目录映射到容器的 /config/Downloads 目录
          # 用于持久化存储下载的文件
          - ./data:/config/Downloads
        environment:
          # 关键:设置容器内应用的用户与用户组 ID。
          # 建议修改为宿主机当前用户的 UID 和 GID,以避免挂载目录的权限冲突。
          # 可在宿主机终端执行 `id` 命令获取。
          - USER_ID=1000
          - GROUP_ID=1000
          # 设置 VNC 会话的显示分辨率
          - DISPLAY_WIDTH=1280
          - DISPLAY_HEIGHT=720
          # (可选) 设置 VNC 访问密码。取消注释并替换为强密码。
          # - VNC_PASSWORD=your_secret_password
        restart: unless-stopped
    
  3. docker-compose.yml 文件所在的目录下,执行以下命令以启动服务:

    docker compose up -d
    
  4. 用浏览器访问 http://<宿主机IP地址>:5800 或者使用 VNC 客户端 (如 RealVNC Viewer, TigerVNC) 连接至 vnc://<宿主机IP地址>:5900

  5. 为确保下载文件能正确保存至宿主机映射目录,首次启动后必须在 Motrix 应用内完成以下配置:

    a. 在 Motrix 图形界面中,导航至 偏好设置基础设置
    b. 定位到 下载路径 选项,点击 “更改”
    c. 将路径手动设置为容器内部的绝对路径:/config/Downloads

    image.png

  6. noVNC 不支持传统意义上的直接、无缝剪贴板调用。
    a. 在你的本地电脑上复制文本。
    b. 打开 noVNC 界面侧边的控制条,找到剪贴板工具。
    c. 将文本粘贴到 noVNC 的剪贴板文本框中。

    image.png

    d. 此时,文本被发送到远程服务器的剪贴板。你现在可以在远程桌面环境中使用粘贴命令(如 Ctrl+V)来粘贴内容。

不太理解这个的意义,直接运行 aria2 服务不就行了?

我有一事不明,有 web 了为何需要 vnc?

不太习惯用 Aria2,一直用 Motrix,但我的树莓派没装桌面,所以就放 Docker 里运行。

jlesage/docker-baseimage-gui 带的,这个web访问其实也是基于vnc的。

这个项目蛮不错, 提供包含了轻量级桌面环境、VNC 服务和 Web 访问功能的基础镜像,非常适合于在无头服务器上运行 GUI 应用。

你说的不习惯是 Aria2ng这些前端?Motrix的后端也是 aria2啊

嗯嗯,我前面说得不太准确。我最初接触 Aria2 时用的是一个没有中文、界面老旧且配置复杂的 web UI(具体项目名忘了)把自己劝退了 :joy:。后来就一直用 Motrix。

motrix是个node程序啊,它完全可以弄成真正的web版而不是vnc套electron这种让人虎躯一震的操作。

这里的无头是什么意思?

你说的有道理,但是将 Electron 重构成 Web 版,应该没那么简单。我能力有限,只能用这种方式了。

不过感谢提醒,我找到了个现成的 Motrix-Web 项目,正好可以试试。

“无头(Headless)” 指的是不连接显示器、键盘和鼠标,甚至不安装桌面环境,而是通过网络用命令行远程操作它。