Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后可以方便地从 YML 文件配置中创建并启动所有服务。

Unraid,fnOS,群晖等 NAS 系统都支持 Compose,很多通过自带的 docker GUI 无法配置的选项,都可以通过 Compose 使用 YML 配置文件来实现。而且 Compose 具有修改配置方便,方便备份,迁移等优点。

Compose 模板

注意

  • 下面的 Compose 模板在 fnOS 中测试,也同时适用于群晖和 Unraid,仅需要修改对应的数据挂载路径。
  • 下面所有 Compose 模板默认映射的文件夹为 /change/to/your/path,你需要根据自己的实际情况做出修改。
  • 部分应用比如 embyjellyfin 的默认端口都一样,如果需要同时安装,注意修改端口。
  • immich 需要将 env 配置文件名称修改为 .env

这里分享一些常用的 Compose 模板,包含以下应用:

名称 介绍 挂载目录 默认 Web 端口
OpenList 挂载网盘 - 5244
Aria2-Pro 轻量级下载工具 downloads 6880
BaiduDisk 百度网盘 downloads 5800
Calibre-Web 电子书库 books 8083
Cloudbak 云朵备份,备份微信 cloudbak 9527
CloudDrive2 映射网盘到本地 clouddrive 19798
DDNS-Go 自动绑定公网 IP 到对应域名 - 9876
Emby 影视媒体库 downloads 8096
FileBrowser 文件管理器 vol1 9000
Jellyfin 开源的影视媒体库 downloads 8096
Immich 照片备份 photos 2283
iPerf3 网络带宽性能测试 - 5201
LibreSpeed 网速测试 - 9001
Metube 下载在线视频 downloads 8081
Memos 开源的日记、微博应用 - 5230
Miniflux 极简的 RSS 阅读器 - 8020
Metatube 小姐姐刮削服务端 - 8900
Navidrome 音乐库 musics 4533
Planka 看板 - 5000
qBittorrent BT、PT 下载客户端 downloads 8080
RSSHub 一切皆可 RSS! - 1200
SpeedTest 网速测试 - 9002
Syncthing 跨平台文件同步 syncthing 8384
Syncclipboard 跨平台剪贴板同步 - 5033
Sun-Panel NAS 导航页 - 3002
Transmission BT、PT 下载客户端 downloads 9091
UptimeKuma 服务监控 - 3001
Vaultwarden 开源好用的密码管理器 - 8030
WeWeRSS 通过 RSS 订阅微信公众号 - 4000
Wxedge 网心云 wxedge 18888
Wallos 个人订阅管理 - 8282
Xiaoya 小雅全家桶 - 5678
Xunlei 迅雷 downloads 2345
  • qBittorrent 内置了两套 WebUI,分别为 vuetorrentqb-web。可以在 设置 -> Web UI 中切换。需要勾选 使用备用 Web UI,文件路径设置为:/config/vuetorrent/config/qb-web

默认密码

访问方式:NAS IP:默认 Web 端口

  • OpenList、qBittorrent 默认密码可以到容器日志中查看。
  • Aria2-Pro 默认 RPC_SECRET:P3TERX
  • Calibre-Web 默认用户名/密码:admin/admin123。
  • FileBrowser 默认用户名/密码:admin/admin。
  • 迅雷内测码:我不是矿神IMNKS
  • Miniflux 默认用户名/密码:admin/test123
  • Planka 默认用户名/密码:admin/admin
  • Syncclipboard 默认用户名/密码:admin/admin
  • Sun-Panel 默认用户名/密码:admin@sun.cc/12345678
  • xiaoya 全家桶默认用户信息请查看项目介绍
  • WeWeRSS 默认授权码:123456

如何使用?

提示

建议 fnOS 中至少有一块 SSD 用来存储 docker 镜像和配置。第一次打开 docker 应用时,fnOS 会提示存储位置,可以将默认存储位置设置到这个 SSD 上,之后 docker 镜像就会保存到这块 SSD 里。

在系统自带的文件管理器中,切换到 管理员视角,在 SSD 的存储空间中就可以看到有个 docker 文件夹, 该文件夹就保存了 docker 镜像,运行环境,网络,插件等等。

需要注意的是,这个 docker 文件夹的位置位于存储空间根目录,和下面说的 docker 配置文件夹是两回事。比如选择了 docker 存储空间为 /vol1,那么该 docker 的文件夹路径为 /vol1/docker

img

在 SSD 的存储空间中,新建一个 docker 配置文件夹,该文件夹的位置应该为 /vol1/1000/docker1000 表示当前的用户 ID,将上面的 Compose 文件夹中的所有文件上传到 docker 配置目录,应该像下面这样:

img

然后在 docker 应用中,逐个新建 Compose 项目,选择 /vol1/1000/docker 下面对应的 Compose 配置文件夹,确认所需映射的路径没问题,就可以一键安装 Compose 应用了。比如,以新建 alist Compose 项目为例:

docker -> Compose 中新增项目,项目名称输入 alist,路径选择 /vol1/1000/docker/alist,会自动提示 使用现有的 docker-compose 配置来创建项目,勾选 创建项目后立即启动,点击 完成 就会自动拉取相关 docker 镜像并启动项目。

img

如何修改 Compose 配置?

在 fnOS 中,后续如果需要修改 Compose 配置,并且让配置生效,请按下面的步骤来操作:

  • 停止 Compose
  • 修改 yml 配置
  • 清除 Compose
  • 启动 Compose

如何更新 Compose 应用?

提示

目前在 fnOS 的 docker GUI 暂不支持直接更新 Compose 应用,后面应该也会支持的。

使用 watchtower 自动更新

可以使用 watchtower 实现自动更新,上面分享的 Compose 模版默认不包含 watchtower。如果你想自动更新 Compose 应用,可以在 docker-compose.yml 中加入下面的配置(watchtower 部分),以 RSSHub 这个 Compose 为例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
name: rsshub
services:
rsshub:
container_name: rsshub
ports:
- 1200:1200
image: diygod/rsshub
restart: always

watchtower:
image: containrrr/watchtower
volumes:
- /var/run/docker.sock:/var/run/docker.sock
command: --interval 86400 --cleanup --remove-volumes
environment:
- WATCHTOWER_CLEANUP=true
- WATCHTOWER_REMOVE_VOLUMES=true

其中的 86400 代表每 24 小时(3600*24)会自动检测更新,如果有新的镜像,会自动完成拉取镜像,删除容器,重建容器等一系列操作。

使用命令手动更新

使用 SSH 登录 fnOS,cd 进入到需要更新的应用的 Compose 配置目录(该目录下面有 yml 配置文件)。以 immich 为例:

1
2
# 此处 docker 配置目录位于 vol1 存储池
cd /vol1/1000/docker/immich

依次按照下面的命令进行更新:

1
2
3
4
5
6
# 先停止 compose 项目
docker compose down
# 拉取最新镜像
docker compose pull
# 启动 compose 项目
docker compose up -d

img