Docker Swarm和Windows节点持久存储

Docker Swarm和Windows节点持久存储,docker,docker-swarm,docker-for-windows,Docker,Docker Swarm,Docker For Windows,我们有一个带有Linux和Windows节点的Docker群集 目前我们使用的是Docker版本19.03.1,构建74b1e89 在Linux节点上,我们使用NFS存储,但在Windows节点上,这似乎是不可能的 我们迄今为止所做的尝试: 此平台不支持创建错误选项 启动之前安装nfs共享服务时出现错误卷规范无效…类型“bind”的装载配置无效…源路径不存在… 使用会产生错误参数不正确 对于SMB全局映射,为V: $secpasswd=ConvertTo SecureString'test'

我们有一个带有
Linux
Windows
节点的
Docker群集

目前我们使用的是
Docker版本19.03.1,构建74b1e89

在Linux节点上,我们使用
NFS
存储,但在Windows节点上,这似乎是不可能的

我们迄今为止所做的尝试:

  • 此平台不支持创建错误
    选项

  • 启动之前安装nfs共享服务时出现错误
    卷规范无效…类型“bind”的装载配置无效…源路径不存在…

  • 使用会产生错误
    参数不正确

对于
SMB全局映射
,为
V:

$secpasswd=ConvertTo SecureString'test'-AsPlainText-Force
$creds=新对象System.Management.Automation.PSCredential(“测试”,$secpasswd)
新的SmbGlobalMapping-RemotePath\\192.168.100.100\tmp-Credential$creds-LocalPath V:
并使用以下
docker compose

version: '3.7'

services:
  smb:
    image: mcr.microsoft.com/windows/servercore/iis:windowsservercore-1903
    volumes:
      - V:\poc:C:\inetpub\wwwroot
    ports:
      - 8080:80
    networks:
      - default

networks:
  default:
这是错误消息:

ERROR: for smb  Cannot start service smb: hcsshim::CreateComputeSystem f7d850c78830cb6c0933dc1b4d95035ace6e8d712fb37db24896311f52e2db90: The parameter is incorrect.
(extra info: {"SystemType":"Container","Name":"f7d850c78830cb6c0933dc1b4d95035ace6e8d712fb37db24896311f52e2db90","Owner":"docker","IgnoreFlushesDuringBoot":true,"LayerFolderPath":"C:\\ProgramData\\Docker\\windowsfilter\\f7d850c78830cb6c0933dc1b4d95035ace6e8d712fb37db24896311f52e2db90","Layers":[{"ID":"945ed3ff-4e7f-58e9-b88f-c87c850cc81e","Path":"C:\\ProgramData\\Docker\\windowsfilter\\a240ba3f3c05dab6080c1e01fd0b3692f1731247a77b8be965c81671631eb223"},{"ID":"a2b23cbc-2bc6-549a-a6d3-568f5aa1ba1e","Path":"C:\\ProgramData\\Docker\\windowsfilter\\19595266d37a2d38b4d19c3f5dcc91c1a52c64808d589df00f0a383edf1e317a"},{"ID":"73d26471-1e22-5d8a-b948-6f8effff0dcf","Path":"C:\\ProgramData\\Docker\\windowsfilter\\4e8597b8eb2ce54456d622e9ff82d5c0f52c8e137495f86f6adf8a0d4d692a7e"},{"ID":"ebe5a7a6-7821-5098-865b-75bc9cdca278","Path":"C:\\ProgramData\\Docker\\windowsfilter\\46e64689e93c40d6634b136c2242cfea6e253cf05f02838c4bfb57d10a999b91"},{"ID":"a64e3b2e-ccdd-5f5e-b342-99226d4c6991","Path":"C:\\ProgramData\\Docker\\windowsfilter\\b074eb9cfdf114ecaaf6a0104a710cdb3abc41f93f4dbd6161681df443c07188"}],"HostName":"f7d850c78830","MappedDirectories":[{"HostPath":"v:\\poc","ContainerPath":"c:\\inetpub\\wwwroot","ReadOnly":false,"BandwidthMaximum":0,"IOPSMaximum":0,"CreateInUtilityVM":false}],"HvPartition":true,"EndpointList":["60F1BA39-5E74-41A0-84C7-C0F76680E78F"],"HvRuntime":{"ImagePath":"C:\\ProgramData\\Docker\\windowsfilter\\46e64689e93c40d6634b136c2242cfea6e253cf05f02838c4bfb57d10a999b91\\UtilityVM"},"AllowUnqualifiedDNSQuery":true})
ERROR: Encountered errors while bringing up the project.

是否有人有关于如何在Docker Swarm群集中的Windows节点上使用持久存储的解决方案?

在运行#3中概述的powershell命令之前,您需要启用Windows中的SMB文件共享功能

启用该功能后,请确保共享文件夹并添加必要的安全权限

接下来必须运行以下命令

  • $creds=获取凭证

  • 新建SmbGlobalMapping-RemotePath\\SERVER\SharePath$creds-LocalPath驱动器:


  • 您是否在Windows功能中启用了SMB文件共享支持?
    SMB文件共享
    已启用。是否可以发布docker run命令或用于装载文件的compose部分volume@SoumenMukherjee将已使用的命令docker compose&错误消息添加到初始线程。