最近在树莓派上使用Docker部署了AList作为个人云盘使用,同时AList还支持整合各大网盘资源,可以极大方便我管理自己的网盘资源,在这里记录一下部署的过程,供之后参考

Docker环境安装

在Linux环境中安装Docker非常方便,直接下载即可。我的树莓派是基于Debian的系统所以直接安装即可,没有遇到什么问题,注意国内网络需要在/etc/docker/daemon.json配置一下镜像源。

docker有效镜像源持续更新网站:Docker/DockerHub 国内镜像源/加速列表(2月15日更新-长期维护)

对于Windows系统,安装Docker的步骤相对比较复杂,参考文章:Windows 11:Docker Desktop 安装和配置指南,因为我是在树莓派上安装的AList,所以有关Windows系统部署AList的过程不在本文讨论中

安装完成后,执行systemctl status docker检查Docker服务是否正常运行

外接硬盘配置

为了能让AList担当个人云盘的功能,我在树莓派外部设置了一个1TB的机械硬盘用于存储数据,硬盘插在硬盘盒上,通过USB线与树莓派连接

连接硬盘后,命令sudo fdisk -l可以查看硬盘的相关信息

在Linux中连接一个硬盘后,一些图形化的系统可以自动挂载硬盘,我的树莓派系统也可以自动挂载,但默认挂载点是在/media的,我不想让它挂载在这个地方,于是决定手动挂载

创建目录:/mnt/1TB_disk作为指定挂载点,然后进行挂载:

sudo mount /dev/sda1 /mnt/1TB_disk

挂载完成后,命令lsblk -f可以查看硬盘的文件系统类型、UUID等信息:

FICN@FICN:~ $ lsblk -f
NAME        FSTYPE FSVER LABEL  UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
sda
└─sda1      exfat  1.0          67AF-3F5B                             926.7G     1% /mnt/1TB_disk

但这样的话,每次连接硬盘时都需要手动挂载一次,很麻烦,所以可以使用autofs实现自动将连接的硬盘挂载至指定目录,当一段时间不使用硬盘资源时,autofs也会自动取消硬盘挂载

autofs自动挂载

sudo apt-get install autofs下载autofs,然后systemctl enable autofssystemctl start autofs启动服务,创建/etc/auto.master添加:

/mnt /etc/auto.disk --timeout=60

最后创建/etc/auto.disk并设置:

1TB_disk -fstype=exfat,raw,noatime :/dev/disk/by-uuid/67AF-3F5B

这里指定了硬盘文件系统类型为exfat,并使用UUID来指定需要被挂载的硬盘,这两个都是之前执行lsblk -f命令获得的信息

如此配置后,硬盘将被自动挂载至/mnt/1TB_disk目录

最后还要禁用系统原有的自动挂载服务:systemctl stop fstabsystemctl disable fstab

Q:为什么不直接改fstab的配置,反而要再下载一个autofs进行自动挂载?

A:因为听说fstab配置不好会无法开机,而且看起来autofs的配置比fstab的配置写法更好懂

为了磁盘空间管理方便,在磁盘中创建一个目录/mnt/1TB_disk/AList专门用于存储AList相关数据

AList安装

参考官方文档,使用Docker安装AList只需要一行命令即可

这里有一个注意点,如果想要在AList中使用除SimpleHttp之外的下载方式(如Aria2),那么最好不要下载文档中提供的docker镜像alist:latest

虽然完全可以安装AList后再在Docker容器中下载Aria2,但我自己尝试后感觉略显繁琐,何况官方也提供了预装Aria2的镜像版本,何不直接使用呢?另外如果已经安装了alist:latest想要更换版本,官方也提供了清晰的文档,见:https://alist.nn.ci/zh/guide/install/docker.html#%E6%9B%B4%E6%96%B0

这里我选择使用预装Aria2的镜像版本,部署命令:

docker run -d --restart=unless-stopped -v /mnt/1TB_disk/AList:/opt/alist/data -p 5244:5244 -e PUID=0 -e PGID=0 -e UMASK=022 --name="alist" xhofe/alist:latest-aria2

注意这里-v /mnt/1TB_disk/AList:/opt/alist/data设置了容器内数据的挂载卷,此后目录/mnt/1TB_disk/AList存储的就是容器中目录/opt/alist/data的数据内容

安装完成后,可以使用以下命令设置用户名与密码:

docker exec -it alist ./alist admin set NEW_PASSWORD

AList配置

AList安装完成后,浏览器输入127.0.0.1:5244即可访问系统前端,输入正确的账户名密码后即可进入系统主页

添加存储

系统主页在未配置存储的情况下是什么都没有的,需要点击下方的【管理】进入管理界面添加存储:在管理页面的侧边导航栏点击【存储】,选择【添加】进入添加存储页面

可以提前在/mnt/1TB_disk/AList中创建一个local文件夹,用于存储将来的云盘数据

  • 在【驱动】下拉框选择【本机存储】,表示要添加的存储类型是本机的存储

  • 【挂载路径】就是在AList前端能看到的目录,这里可以设置为/本地

  • 【根文件夹路径】要格外注意,这个属性指的是这个存储中的文件将要被放置到的目录,这里设置为/opt/alist/data/local,因为/opt/alist/data对应着树莓派的/mnt/1TB_disk/AList目录,所以实际上文件会被存储在/mnt/1TB_disk/AList/local

    如果这个属性没有设置到挂载的硬盘上,会导致之后所有本地文件都存储在树莓派自己的存储空间中

以上三个属性配置完成即可,其他的配置保持默认即可,点击【保存】并返回主页即可看到刚刚添加的“本地”文件夹

设置WEBDAV

我希望能在AList上实现家庭影院的效果,可以考虑在电视机上安装支持WebDAV播放的软件(例如KODI),然后使用KODI访问AList,由AList提供WebDAV服务即可实现在电视机上观看AList存储中的视频文件

当我安装好AList和KODI后却发现KODI无法访问到AList的WebDAV服务,检查后发现是当前的admin用户没有使用WebDAV服务的权限

想要开放权限也十分简单,在【管理】页面选择【用户】,对admin角色的权限进行编辑,开放【WEBDAV读取】和【WEBDAV管理】即可

权限编辑

参考

Docker/DockerHub 国内镜像源/加速列表(2月15日更新-长期维护)

Windows 11:Docker Desktop 安装和配置指南

AList文档