AList 替换 OpenList 实战教程(Docker Compose 版)
适用场景:你正在使用 AList(Docker Compose 部署),希望平滑切换到 OpenList,并且要求可回滚、尽量不丢数据。
⚠️ 风险提示(先看)
- 务必先备份 compose 与 data,再改配置。
- 迁移过程中若出现 502/容器重启,先回滚恢复可用,再排查。
- 本文默认你有 root 权限和 Docker 管理权限。
✅ 发布前检查清单
[ ] 已定位 compose 文件路径
[ ] 已备份 docker-compose.yml
[ ] 已备份 data 目录
[ ] 已准备回滚命令
[ ] 已预留维护窗口1) 定位 compose 文件
find / -maxdepth 5 -name docker-compose.yml 2>/dev/null | while read f; do
grep -q "xhofe/alist-aria2\\|alist" "$f" && echo "$f"
done示例:/volume1/docker/alist/docker-compose.yml
2) 备份(必须执行)
cd /volume1/docker/alist
TS=$(date +%Y%m%d_%H%M%S)
BACKDIR=/volume1/docker/alist_backup_$TS
mkdir -p "$BACKDIR"
cp docker-compose.yml "$BACKDIR/docker-compose.yml.bak"
cp -a . "$BACKDIR/data_backup"3) compose 核心替换
- image: xhofe/alist-aria2:latest
+ image: openlistteam/openlist:latest
- ./:/opt/alist/data
+ ./:/opt/openlist/data建议增加(避免权限问题):
user: "0:0"4) 启动与校验
docker compose up -d
docker ps -a --filter name=^/alist$
docker logs --tail 80 alist成功日志关键字:
start HTTP server @ 0.0.0.0:5244
start S3 server @ 0.0.0.0:5246域名可用性检查:
curl -L --max-time 20 -s -o /tmp/acloud.html -w "%{http_code}\n" https://acloud.ogogogo.top5) 常见故障与修复
现象:容器反复重启,日志报:
Current user does not have write and/or execute permissions for /opt/openlist/data处理策略:
- 先回滚到旧版本,恢复线上可用。
- 再二次迁移,在 compose 增加
user: "0:0"。 - 重新
up -d并复检日志。
6) 一键回滚方案(保命)
cd /volume1/docker/alist
cp docker-compose.yml.pre_openlist_fix_时间戳.bak docker-compose.yml
docker compose up -d7) 上线验收清单
[ ] acloud 域名 200
[ ] 登录后台正常
[ ] 存储挂载可见
[ ] 分享链接可访问
[ ] 下载/预览功能正常结论
这次迁移最关键的不是“改镜像”本身,而是先备份、可回滚、分步验证。按这个流程执行,线上风险会显著降低。
评论区