SMB/CIFS 卷 Docker-撰写于 Windows

SMB/CIFS volume in Docker-compose on Windows

我有一个带有共享 CIFS/SMB 共享的 NAS,我想在 Windows 上使用 docker-compose 将其挂载为一个卷。

我已经阅读了多个建议(例如使用插件,将其安装在 Windows 中以给它一个驱动器号)但没有找到任何我可以开始工作的东西。 我知道这不是 100% 直接的,因为我是从另一个 OS 内部访问它的。但这听起来应该是可能的。

假设我有一个网络路径 \my-nas\share,我将如何使用 docker-compose 在 Windows 上将其安装到 docker 容器中主持人?

我完全误解了this docker docs page

的意思

The built-in local driver on Windows does not support any options.

这并不意味着您不能在 Windows 中使用 cifs 驱动程序。

解决方法很简单

services:
  my-service:
    volumes:
      - nas-share:/container-path

volumes:

  nas-share:
    driver_opts:
      type: cifs
      o: "username=[username],password=[password]"
      device: "//my-nas/share"

[username][password] 替换为 NAS 的实际用户名和密码,它完美运行。

这对我在 WindowsServer2019 主机上使用 windows 容器有效。它需要版本 1705 或更高版本:
https://docs.microsoft.com/en-us/virtualization/windowscontainers/manage-containers/persistent-storage#bind-mounts

首先将文件共享挂载到主机。
$creds = 获取凭据 New-SmbGlobalMapping -RemotePath \contosofileserver\share1 -Credential $creds -LocalPath G:

然后在 compose 中正常映射驱动器:

services:
  my-service:
    volumes:
    - Z:\:/container-path