我有一台 Debian 11 服务器,其下有多个 smb 共享/samba/
。现在我想在这台机器上的 docker 容器内运行名为 Syncthing 的文件同步软件的多个实例,因此每个 smb 共享都有一个 Syncthing 容器。
我很困惑如何让 docker 容器访问主机系统上的那些目录。
volumes:
- /samba/userX:/userX-data
简单地将 smb 目录映射为卷(使用 docker-compose)是一个坏主意,因为通过 docker 容器的每个文件创建/修改都是以 root 身份完成的,因此会弄乱主机上的权限(主机需要正确的 smb 权限)。
//127.0.0.1/userX /mnt/smb/user1 cifs username=userX,password=<passwd> 0 0
我能想到的唯一解决方案是将 SMB 共享从主机系统安装到主机系统上,然后映射/mnt/smb/user
到适当的容器中。
但我觉得这有点奇怪,而且不必要地通过网络访问文件系统不会严重影响性能吗?还是说这无关紧要,因为所有内容都保留在一台物理服务器上?
Syncthing 作为存储应用程序,建议“直接”访问存储...
非常感谢任何替代方案和想法!