如何将NAS的NFS共享挂载至运行Sab的Docker容器
将本地NFS挂载点接入Sab Docker容器的两种方案
方案一:直接映射宿主机已挂载的NFS目录
既然你已经在宿主机把NFS共享(192.168.1.50:/Plex)挂载到了/mnt/Plex,最直接的方式是用Docker的bind挂载把这个目录直接映射进Sab容器:
普通Docker容器命令
docker run -d \ --name sabnzbd \ -v /mnt/Plex:/downloads \ sabnzbd/sabnzbd:latest
- 把
/downloads替换成Sab容器内实际用于存储下载文件的路径(可参考Sab镜像的官方文档确认默认路径) - 这种方式复用了你宿主机已有的NFS挂载配置,无需额外配置Docker卷
方案二:用Docker本地卷直接对接NFS服务器(跳过宿主机挂载)
如果你不想依赖宿主机的本地挂载,也可以让Docker直接创建NFS类型的卷对接服务器,参考你提供的Swarm服务脚本,适配Sab的命令如下:
Docker Swarm服务命令
docker service create \ --mount 'type=volume,src=sab-nfs-volume,dst=/downloads,volume-driver=local,volume-opt=type=nfs,volume-opt-device=192.168.1.50:/Plex,volume-opt=o=addr=192.168.1.50,vers=4,soft,timeo=180,bg,tcp,rw' \ --name sab-service \ sabnzbd/sabnzbd:latest
src=sab-nfs-volume是自定义的卷名称,可按需修改dst=/downloads替换为Sab容器内的下载路径- NFS参数
vers=4可根据你的NFS服务器实际配置调整(比如改为vers=3)
注意事项
- 确保NFS服务器允许宿主机(或Swarm节点)的IP访问,且共享目录的权限配置能让容器内的Sab进程正常读写
- 如果是已运行的Sab容器,需先停止容器,调整挂载参数后重启;或者直接创建新容器替换
内容的提问来源于stack exchange,提问作者user18573049
相关产品推荐
相关产品推荐

