gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 18:37:22 25 4
gpt4 key购买 nike

我正在尝试在开发环境中将SMB网络存储映射到Docker,使其以与共享本地驱动器相同的方式可用于容器。这意味着,对于整个Docker VM,不是单个容器。另一个应用程序需要通过SMB访问进行网络存储,但是它在另一个域中,因此我无法从本地驱动器共享任何内容。 Windows网络驱动器也不适用于Docker。

当前的解决方法是在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资源?

最佳答案

我认为您要面对的最大问题是,用于Windows的Docker的整个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-utils或nfs-common,但是由于它是只读文件系统,所以我想不出一种方法来使其正常工作。

关于docker - Windows Docker中的网络存储(SMB/CIFS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53084785/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com