代码之家  ›  专栏  ›  技术社区  ›  Erik Hart

Windows Docker中的网络存储(SMB/CIFS)

  •  2
  • Erik Hart  · 技术社区  · 7 年前

    当前的解决方法是在Docker上打开嵌套的shell,访问VM,然后装载网络存储。我尝试将其作为Windows批处理文件,但它在第一个shell提示时停止,不再通过“echo”输入。

    docker run --rm -it --privileged --pid=host justincormack/nsenter1
    echo ctr -n services.linuxkit task exec -t --exec-id foo docker-ce /bin/sh
    echo mkdir host_mnt/mystorage
    echo mkdir host_mnt/mystorage/Videos
    echo mkdir host_mnt/mystorage/Videos/my-private-storage
    echo mount -v -t cifs -o username=myname,password=p@s$w0rd,file_mode=0777,dir_mode=0777,vers=2.0,uid=1234,gid=1234 //mystorage.mycompany.com/Videos/my-private-storage /host_mnt/mystorage/Videos/my-private-storage
    echo exit
    echo exit
    

    将其输入控制台(不带“echo”)后需要删除/重新启动Docker容器。

    有没有办法在Docker启动时轻松地将网络驱动器映射到Docker?或者其他任何轻松使用SMB资源的方式?

    1 回复  |  直到 7 年前
        1
  •  0
  •   Dockstar    7 年前

    我认为您将面临的最大问题是,用于Docker for Windows的整个Moby VM都有一个只读文件系统。如果您只是尝试直接从Moby本身进行装载,您会发现它缺少CIFS/NFS的帮助程序应用程序。

    mount: /mnt: bad option; for several filesystems (e.g. nfs, cifs) you might need a /sbin/mount.<type> helper program.
    

    在大多数环境中,我们只需要安装cifs UTIL或nfs common,但由于它是一个只读文件系统,我想不出一种方法来实现这一点。

    推荐文章