网盘搭建

网盘搭建的具体流程

一.整体思路

核心思路:

使用 DockerAList 作为一个独立容器运行,再把服务器上的真实目录挂载到容器中,作为网盘文件的实际存 储位置。之前也使用过可道云这类网盘系统,但整体感觉功能偏重、比较臃肿。对于个人服务器来说,我更希望网盘系统足够轻 量、部署简单、方便迁移。


主要目标
  • 使用自己的服务器存储文件
  • 通过浏览器上传、下载文件
  • 尽可能轻量级
  • 方便迁移和备份
  • 后期只需要重点备份两个目录即可

选择 AList 的原因主要有:
  • 资源占用低
  • 部署简单
  • 适合个人使用
  • 支持本机存储
  • 支持浏览器访问
  • 配合 Docker 迁移方便

二.创建 AList 数据目录

为了将 AList 配置和网盘文件保存在宿主机中,先创建两个目录:

1
2
mkdir -p /opt/alist/data
mkdir -p /data/pan

这两个目录的作用分别是:

1
2
/opt/alist/data   保存 AList 配置、账号、数据库等
/data/pan         保存网盘中真实上传的文件

这样即使以后删除或重建 Docker 容器,配置和文件也不会丢失。

使用目录挂载:

将服务器目录映射到容器内部目录

好处是

这样容器删除或重建后,数据仍然保存在服务器真实目录中,不会随着容器一起丢失。


三.使用 Docker 启动 AList

执行下面命令启动 AList:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
docker run -d 
  --restart=always 
  --name alist 
  -p 5244:5244 
  -v /opt/alist/data:/opt/alist/data 
  -v /data/pan:/data/pan 
  -e PUID=0 
  -e PGID=0 
  -e UMASK=022 
  xhofe/alist:latest

启动命令参数说明

参数说明

docker run 用来创建并运行一个新的容器。

-d 表示后台运行容器。

--restart=always 表示设置容器自动重启。服务器重启后,AList 容器也会自动启动。

--name alist 表示设置容器名称为:alist

后面查看、管理、进入容器时都可以直接使用这个名字。

-p 5244:5244 表示端口映射。含义是: 服务器 5244 端口 → 容器内部 5244 端口

-v 宿主机路径:容器内路径

-v /opt/alist/data:/opt/alist/data这条命令用于挂载 AList 配置目录。 表示: AList 的配置、数据库等信息会保存在服务器的 /opt/alist/data 中。

-v /data/pan:/data/pan这条命令用于挂载网盘文件目录。 表示: 之后通过 AList 上传的文件,就会真实保存在服务器的 /data/pan 目录中。 -e PUID=0 表示设置运行用户 ID。 这里使用 0,表示 root 用户。

-e PGID=0 表示设置运行用户组 ID。 这里使用 0,表示 root 用户组。

-e UMASK=022 表示设置文件权限掩码。 一般保持默认即可。

xhofe/alist:latest 表示使用 AList 的 Docker 镜像。


四.查看容器状态

启动完成后,可以查看容器是否正常运行:

1
docker ps

如果看到类似下面的内容,说明容器运行成功:

1
2
CONTAINER ID   IMAGE                COMMAND            STATUS        PORTS                                      NAMES
9a8a51beb8e1   xhofe/alist:latest   "/entrypoint.sh"   Up            0.0.0.0:5244->5244/tcp, :::5244->5244/tcp  alist

设置 AList 管理员密码

AList 启动后,需要设置管理员密码。

执行:

1
docker exec -it alist ./alist admin set 密码

五.AList 后台配置

配置步骤

进入 AList 后台后,主要配置本机存储。

1. 添加存储,进入后台管理页面,找到:存储 → 添加

2. 驱动选择:本机存储

3. 显示文件夹名称

注意:路径前面要带 /。例如:/我的网盘

4. 根文件夹路径:/data/pan

5. WebDAV 策略:默认


六.项目结构说明

部署完成后,服务器上大致会形成下面的结构:

  • opt/
    • alist/
      • data/
        • config.json
        • data.db
        • AList 配置和数据库文件
  • data/
    • pan/
      • 上传的文件/
      • 创建的文件夹/
      • 网盘真实数据/
  • var/
    • lib/
      • docker/
        • containers/
        • image/
        • overlay2/
        • volumes/
        • Docker 内部数据/

真正需要重点保护和备份的是下面两个目录:

/opt/alist/data

/data/pan

它们分别保存:

目录 作用
/opt/alist/data AList 配置、账号、数据库
/data/pan 网盘中真实上传的文件

只要这两个目录还在,即使以后删除容器,也可以重新创建容器并恢复网盘数据。

如果以后要迁移服务器,只需要做三件事。

1. 备份两个目录

1
2
/opt/alist/data
/data/pan

2. 在新服务器重新安装 Docker

按照前面的 Docker 安装步骤重新安装即可。


到这里,一个基于 Docker + AList 的个人网盘就搭建完成了。 网盘搭建-i51pmg5 网盘搭建-i52pmg5


七.总结

搭建核心

Docker 运行 AList

宿主机目录保存配置和文件

浏览器访问完成上传和下载

最重要的两个目录是:

/opt/alist/data 负责保存 AList 配置

/data/pan 负责保存真实网盘文件

以后无论是重建容器,还是迁移服务器,只要保护好这两个目录,网盘数据就比较容易恢复。