我拥有的:
- Synology NAS(IP xxx11)
- 安装了 Docker,并设置了
docker
用户和组, - 使用用户运行许多容器
docker
, - 所有集装箱的储存空间
/volume1/docker/
, - NFS 共享
/volume1/docker/
(见下文脚注 1);
- 安装了 Docker,并设置了
- Linux 电脑 (IP xxx10)
- Docker 已安装,尚无
docker
用户和组, /media/docker
像在 PC 上一样挂载 NFS 共享(参见下面的脚注 1),- 该用户仅拥有读使用权,
sudo
有写访问,但我不想以 root 身份运行所有东西!
- Docker 已安装,尚无
我想要的是:
- 使用运行容器PC 的 CPU,
- 保持容器的NAS 上的存储,
- 仅限此电脑(或者可能只有 PC 上的特定用户?)
应具有对 NFS 共享的网络访问权限。
问题:
- 在 NAS 上,我如何阻止读取访问除了 PC 之外,还能从其他地方进行共享吗?
- 在 NAS 上,我如何授予写访问权限共享,但仅限于这台电脑?(并且仅限于特定用户??)
- 我需要在电脑上设置
docker
用户和组吗?我只需使用现有的(非 root)用户,uid=1001
。 - 在 PC 上,如何配置
/etc/fstab
授予 PC 上的非 root 用户写权限?
脚注:
- 在 NAS 上,
sudo cat /etc/exports
给出:
/volume1/docker 192.168.1.10(rw,async,no_wdelay,crossmnt,no_root_squash,insecure_locks,sec=sys,anonuid=1025,anongid=100)
- 在 PC 上,
cat /etc/fstab
给出:
192.168.1.11:/volume1/docker /media/docker nfs rw,vers=4 0 0
答案1
/etc/exports
在服务器(NAS)上导出所需路径:
/volume1/foo 192.168.1.10(async,rw,all_squash,anonuid=1038,anongid=65544)
# 192.168.1.10 is the only allowed client IP
# connections will be made as if with local user 1038, local group 65544
然后输入exportfs -r
刷新(激活新设置)。
/etc/fstab
在客户端(PC)上:
192.168.1.11:/volume1/foo /media/bar nfsvers=3 0 0
# 192.168.1.11 is the server
# forcing NFS version 3 because Synology NAS does not support version 4!
然后输入mount -a
以激活新设置。
在客户端,touch /media/bar/foo.txt
现在应该可以工作了,并且ls -l
将显示该文件是使用 uid=1038 和 gid=65544 创建的。