在 Windwos 2k3 中在整个驱动器上设置共享时,我收到一条消息“出于安全原因,您已选择共享整个驱动器,不建议这样做”。我做了一个快速的谷歌搜索,但找不到这些神秘的安全原因。有谁知道它们是什么?
我们的业务应用程序在两个节点(节点 1 和节点 2)上运行 Docker Swarm 部署。
应用程序需要一个卷来存储持久数据。由于尚不清楚容器部署在哪里(节点 1 或节点 2),并且应用程序的两个容器可能应该在两个节点上运行,因此我们需要一个解决方案来为所有节点提供共享卷。
为了共享卷,我们使用以下 /etc/exports 文件在第三个节点 3 上设置 NFS 服务器:
/srv *(rw,sync,anonuid=1000,anongid=1000,all_squash,subtree_check,crossmnt,fsid=root)
Run Code Online (Sandbox Code Playgroud)
(我使用 anonuid/gid 为导出中的每个文件显式设置 node3 系统中已知用户的用户信息。 all_squash 用于确保所有访问用户的所有文件权限都重写给该本地用户)
在我们的 docker-compose.yml 中,我们使用以下设置来包含卷:
volumes:
nfs-data:
driver: local
driver_opts:
type: nfs
o: nfsvers=4,addr=node3.example.com,rw,nolock,soft
Run Code Online (Sandbox Code Playgroud)
我们现在遇到了一个问题,容器只是不想启动,错误消息是:
failed to copy file info for /var/lib/docker/volumes/MY_CONTAINER_nfs-data/_data: failed to chown /var/lib/docker/volumes/MY_CONTAINER_nfs-data/_data: lchown /var/lib/docker/volumes/MY_CONTAINER_nfs-data/_data: operation not permitted
Run Code Online (Sandbox Code Playgroud)
经过一番挖掘后,我发现问题在于 Node3 服务器上导出的 NFS 目录上的初始空文件夹。一旦我放入一个空文件,节点 1 和节点 2 中的容器启动就完全正常。
有人对此有解释吗?
我已经安装了启用文件服务的 Windows Server 2008 r2。我的网络有 5 台装有 Windows 7 的计算机,并且都在同一个工作组中(我没有域控制器和活动目录)。所有计算机都可以连接到服务器并查看共享文件夹和文件。
我的问题是如何确保共享文件夹中的文件一次打开一次,以便每次只有网络中的一个用户可以编辑特定文件。
提前致谢,斯皮罗斯