[英]Mounting a network folder to a Docker container on Windows 10
我正在嘗試使用以下語法在 Windows 10 上安裝帶有 Docker 容器的網絡文件夾。 使用 UNC 路徑不起作用。 我在 Hyper-V 和穩定版本的 Docker 下運行它。
docker run -v \\some\windows\network\path:/some/local/container
在我使用 Docker Toolbox 之前,我可以使用 VirtualBox 將網絡共享映射到內部文件夾。 我試過將網絡共享添加為驅動器,但它沒有在設置面板下顯示為可用驅動器。
目前我正在使用 mklink 將本地文件夾鏡像到網絡文件夾,但我不想依賴於此作為解決方案。
轉到 Microsoft 文檔https://docs.microsoft.com/en-us/virtualization/windowscontainers/manage-containers/persistent-storage#smb-mounts 。
在那里您將找到有關如何將網絡驅動器作為卷安裝在 Windows 容器中的信息。
目前(截至 2019 年 11 月 13 日)是不可能的。 但是你可以使用一個插件: https : //github.com/ContainX/docker-volume-netshare
我沒有使用它,所以我沒有使用它的經驗。 剛剛在我的研究中發現它,並希望將其添加為一個潛在的解決方案。
在研究這個主題時,我覺得您可能應該從容器內安裝驅動器。 您可以通過文件或參數傳遞所需的憑據。
您需要在容器中安裝包cifs-utils
,添加
COPY ./.smbcredentials /.smbcredentials
到Dockerfile,然后在容器啟動后運行以下命令:
sudo mount -t cifs -o file_mode=0600,dir_mode=0755,credentials=/.smbcredentials //192.168.1.XXX/share /mnt
這里有另一個關於這個主題的 stackoverflow 線程: Docker add network drive as volume on windows
那里提供的答案( https://stackoverflow.com/a/57510166/12338776 )雖然對我不起作用。
我不是Windows用戶,因此無法測試此答案,但是查看Docker代碼 ,看來您需要在\\\\?\\
路徑。
因此,您應該運行:
docker run -v \\?\some\windows\network\path:/some/local/container
您不應該這樣做,因為docker期望文件是本地文件,並且讀/寫操作在連接錯誤時會超時。
您應該嘗試使軟件直接連接到網絡共享。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.