这样就能充分利用 Nas 的「存储」功能啦!
背景
想把一些比较偏重「计算」的 Docker 从 NAS 上挪走。但是其他设备要么是用的存储卡,要么只有 128G 的硬盘,但是 NAS 有大概 7T 的空间可用。
那么,能不能有个啥办法,让「计算」跑在其他设备上,「存储」放在 NAS 上?
好的,可以,NFS 可以。
实现
实现分两步:在 NAS 上开 NFS 存储;在其他设备上配置 NFS 挂载卷。都不难。
在 NAS 上开 NFS 存储
威联通上,找到「控制台-权限-共享文件夹」,找到一个共享文件夹(或者为 NFS 创建一个共享文件夹也成),点击「编辑共享文件夹权限」,将「选择权限类别」改成「NFS 主机访问」,将下面的「访问权限」打开。
注意,这里有个「共享文件夹名称」,一般情况下和你的共享文件夹的名称(?)是相同的。记下来,后面有用。
在其他 Docker 上挂载 NFS 卷
以 HomeAssistant 为例吧:
version: '3'
services:
homeassistant:
image: "homeassistant/home-assistant"
volumes:
- nfs_homeassistant:/config
- /etc/localtime:/etc/localtime:ro
restart: always
volumes:
nfs_homeassistant:
driver_opts:
type: "nfs"
o: "addr=NAS 的 IP 地址,rw,noatime,rsize=8192,wsize=8192,tcp,timeo=14,nfsvers=4"
device: ":/共享文件夹名称/你随意创建文件夹"
注意几个点:
- 我给这个卷起名叫「
nfs_homeassistant
」,你可以随意起名 o
那一大堆东西是从 Portainer 里面抄来的。最主要的是 NAS 的地址device
,前面的「共享文件夹名称」是必须的;如果你想将整个共享文件夹全挂载给这个 Docker,那么只写到「共享文件夹名称」那里就好了,但是我不建议这样做,如果有多个 Docker 的话会乱掉。所以我这里在共享文件夹里面建立了新文件夹,然后只将这个新文件夹挂载给这个 Docker
然后,回到 NAS 上,去共享文件夹下面创建 docker-compose.yaml
里面声明的文件夹。挂载「本地目录」路径不同,这里这一步必须手动完成,而不是会自动给你创建好。
最后,用你熟悉的 docker compose up -d
将 Docker 启起来。大功告成。
回 NAS 里面,你会发现已经有文件了。
有啥好处呢
额,唯一的好处是能充分利用 NAS 的存储吧。另外就是,万一你心血来潮想把 Docker 从一台机器迁移到另一台机器,不用再手工挪 volume 里面的文件。
其他没啥了,祝玩得愉快。
发表回复