OpenList 中文文档 下载 App

OpenList 的 Docker Compose 写法与三种升级方式

容器一多就该用 Compose 管理:一条文件写清镜像、端口、目录映射,升级也只是一组固定命令。

基础版 compose 文件

在任意目录创建 docker-compose.yml:

services:
  openlist:
    image: 'openlistteam/openlist:latest'
    container_name: openlist
    user: '1000:1000'   # 换成你实际的 UID:GID
    volumes:
      - './data:/opt/openlist/data'
    ports:
      - '5244:5244'
    environment:
      - TZ=Asia/Shanghai
      - UMASK=022
    restart: unless-stopped

注意 user 一项:v4.1.0 之后的镜像不再使用 PUID/PGID 环境变量,改用 user 字段指定运行身份;同时要保证映射目录 ./data 的属主与之一致,否则程序写不了数据库。

启动与日常管理:

docker compose up -d      # 启动
docker compose logs -f    # 看日志(首次启动的初始密码在这里)
docker compose down       # 停止

升级方式一:手动拉新镜像

docker compose pull
docker compose down
docker compose up -d

数据在映射目录里,容器随便删都不丢。

升级方式二:Watchtower 一键更新

docker run --rm -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower openlist --cleanup --run-once

末尾的 openlist 是容器名,按实际改。适合挂后台定时跑。

升级后还是旧版?

最常见原因是只重启了容器、没换镜像:容器内还是旧文件。正确顺序是先 pull 拉新镜像,再 down + up -d 重建容器。另外确认 image 字段写的是 latest 而不是某个固定版本号。

与下载器同栈部署

官方文档提供了一份把 aria2、qBittorrent、Transmission 和 OpenList 写进同一个 compose 文件的增强版示例(配合 离线下载 使用),要点是给下载器的临时目录做相同的路径映射,让 OpenList 容器能看到下载完成的文件。