这样就能充分利用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里面的文件。
其他没啥了,祝玩得愉快。
发表回复