📚 Alist Docker 版完整安装与配置教程
一、拉取 Alist 镜像
1.1 配置国内镜像加速器(重要,避免拉取失败)
编辑 Docker 配置文件:
nano /etc/docker/daemon.json写入以下内容(多地址备份):
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://docker.nju.edu.cn",
"https://docker.mirrors.ustc.edu.cn"
]
}保存后重启 Docker:
systemctl daemon-reload
systemctl restart docker1.2 拉取 Alist 镜像
# 拉取最新稳定版
docker pull xhofe/alist:latest
# 或拉取指定版本(以 v3.57.0 为例)
docker pull xhofe/alist:v3.57.0验证镜像已存在:
docker images | grep alist二、创建并运行 Alist 容器
2.1 创建数据目录(用于持久化存储)
# 创建数据存放目录(可自定义路径)
mkdir -p /etc/alist2.2 运行容器
docker run -d \
--name alist \
--restart always \
-p 5244:5244 \
-v /etc/alist:/opt/alist/data \
xhofe/alist:latest参数说明:
-d:后台运行--name alist:容器名称--restart always:容器退出时自动重启-p 5244:5244:端口映射(宿主机端口:容器端口)-v /etc/alist:/opt/alist/data:数据持久化(宿主机目录:容器内数据目录)
2.3 验证容器运行状态
docker ps | grep alist三、查看管理员密码
3.1 查看初始随机密码
# 从日志中提取密码
docker logs alist 2>&1 | grep "password"输出示例:
INFO[0000] admin user's password: 3kF8pL9x3.2 完整日志查看
docker logs alist3.3 手动重置密码(如需)
# 将 "你的新密码" 替换为你要设置的密码
docker exec -it alist ./alist admin set 你的新密码四、访问与登录
- 打开浏览器,访问
http://你的服务器IP:5244 - 用户名:
admin - 密码:使用上面查看到的密码
- 首次登录后建议:点击页面底部"管理" → 左侧"个人资料" → 修改密码
五、Alist 的备份与恢复(JSON/数据库)
Alist 的所有配置、账号信息、元数据都存储在容器外挂载的数据目录中(即 /etc/alist)。
5.1 数据目录结构
ls -la /etc/alist/主要文件:
data.db:SQLite 数据库(存储用户、挂载、设置等)config.json:配置文件(可选)log/:日志目录
5.2 完整备份数据
方法一:手动打包备份
# 先停止容器确保数据一致性
docker stop alist
# 打包整个数据目录
tar -czf alist-backup-$(date +%Y%m%d).tar.gz -C /etc/alist .
# 重新启动容器
docker start alist方法二:使用 Alist 自带备份功能
登录 Alist 后台:
- 点击底部 "管理"
- 进入左侧菜单 "设置" → "备份"
- 点击 "创建备份"
- 系统会自动生成一个包含所有配置的 ZIP 文件下载
5.3 恢复备份
从手动打包恢复
# 停止容器
docker stop alist
# 清空或备份当前数据目录
mv /etc/alist /etc/alist.old
mkdir -p /etc/alist
# 解压备份到数据目录
tar -xzf alist-backup-20250306.tar.gz -C /etc/alist
# 启动容器
docker start alist从 Alist 后台恢复
- 登录 Alist 后台
- "管理" → "设置" → "备份"
- 点击 "上传备份",选择之前下载的 ZIP 文件
- 系统会自动恢复所有配置
5.4 导出/导入 JSON 配置
Alist 支持将部分配置导出为 JSON 文件:
导出:
# 导出所有存储挂载配置
docker exec -it alist ./alist storage list > storages.json导入:
# 从 JSON 文件导入存储挂载
docker exec -it alist ./alist storage add -f storages.json六、日常管理命令速查
| 操作 | 命令 | |
|---|---|---|
| 查看容器状态 | `docker ps -a \ | grep alist` |
| 查看实时日志 | docker logs -f alist | |
| 停止容器 | docker stop alist | |
| 启动容器 | docker start alist | |
| 重启容器 | docker restart alist | |
| 进入容器内部 | docker exec -it alist sh | |
| 升级 Alist | docker pull xhofe/alist:latestdocker stop alistdocker rm alist重新运行创建容器的命令 |
七、注意事项
- 数据安全:
/etc/alist目录是数据的核心,务必定期备份 - 文件权限:如遇权限问题,可尝试
chown -R 1000:1000 /etc/alist - 端口冲突:如果 5244 被占用,修改
-p参数的第一个数字 - 防火墙:确保服务器防火墙放行 5244 端口
- 域名访问:如需绑定域名,建议使用 Nginx 反代
本来以为部署Alist会很复杂,看完教程后发现so easy!现在已经成功把天翼云盘和阿里云盘都挂上去了,全家人都能用电视直接看网盘里的电影。有个小问题想请教:如果我想修改默认的5244端口为其他端口,只需要改`-p`参数的前面一个数字对吗?
I appreciate the multi-language comment support! The tutorial is very well-structured. One thing I'd add is about using docker-compose for those who prefer infrastructure as code. But for beginners, the docker run command is definitely simpler. Thanks for the detailed backup instructions!
用了半年Alist,一直是直接二进制安装,今天心血来潮想换成Docker版,正好搜到这篇文章。迁移数据的时候按照5.3节的操作,直接把旧版的data.db复制到新容器的挂载目录,重启后所有配置都在,太爽了!以后升级再也不用担心了。
作为一个小白,看这篇教程真的没压力。从拉取镜像到修改密码每一步都有截图般的命令行,照着敲就行。就是有个地方卡了一下:查看初始密码的时候,我的日志里没有password这一行,后来用`docker logs alist 2>&1 | grep -i pass`才找到。建议大家可以多试试几种grep方式。
I'm a bit confused about the JSON backup part. When I run `docker exec -it alist ./alist storage list`, it shows all my storages in the console but doesn't save them to a file. I realized I need to add `> storages.json` at the end to actually export. Maybe clarify that in the tutorial? Otherwise, great job!