簡體   English   中英

Windows Docker中的網絡存儲(SMB / CIFS)

[英]Network storage (SMB/CIFS) in Windows Docker

我試圖在開發環境中將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,但是由於它是只讀文件系統,所以我想不出一種方法來使其正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM