在 Windows 上將網路驅動器作為 Docker 卷新增
簡介
在 Windows 上使用 Docker 時,可以將網路驅動器用作卷。這允許您將資料儲存在網路驅動器上,並從 Docker 容器內訪問它。當您需要在容器之間或主機與容器之間共享資料時,這非常有用。使用網路驅動器作為卷,您可以輕鬆地在集中位置儲存、管理和備份資料,並將其與多個 Docker 容器一起使用。在本文中,我們將探討在 Windows 上的 Docker 中新增網路驅動器作為卷的過程以及可用的不同選項。我們還將介紹先決條件和最佳實踐,以確保流程順利安全地執行。
先決條件
在 Windows 上的 Docker 中新增網路驅動器作為卷之前,需要滿足以下一些先決條件:
網路驅動器 - 應設定網路驅動器,並可從 Windows 主機訪問。
適用於 Windows 的 Docker - 應在主機上安裝並執行適用於 Windows 的 Docker。
訪問網路驅動器 - 執行 Docker 的使用者帳戶應具有訪問網路驅動器的相應許可權。
防火牆 - Windows 防火牆或任何其他防火牆應允許訪問網路驅動器。
檔案共享 - 應在網路驅動器上啟用檔案共享。
驅動器號 - 如果使用驅動器號訪問網路驅動器,則它應在主機上可用且未被佔用。
IP 地址 - 如果使用 IP 地址訪問網路驅動器,則主機應能夠訪問它。
需要注意的是,滿足這些先決條件將確保網路驅動器已正確配置並可從主機和容器訪問,並且卷掛載過程將順利執行。
在 Windows 上的 Docker 中新增網路驅動器作為卷
在 Windows 上,將網路驅動器作為卷掛載到 Docker 容器中的正確語法略有不同。
不要使用-v標誌,而是可以使用--mount標誌,並結合type=bind選項,以及source和target選項分別指定網路驅動器和容器內的路徑。
docker run -it --mount type=bind,source=//host/network/drive,target=/container/path <image>
或者,您可以使用帶有type=volume選項的--mount標誌,並將網路驅動器指定為卷名,並將容器內的路徑指定為掛載點。
docker run -it --mount type=volume,source=myvol,target=/container/path -v //host/network/drive:/container/path:ro <image>
您也可以使用docker-compose和volumes配置選項,
version: '3' services: myservice: image: <image> volumes: - type: bind source: //host/network/drive target: /container/path
最佳實踐和替代方案
在 Windows 上的 Docker 中新增網路驅動器作為卷時,請務必注意,網路驅動器應可從主機和容器訪問。可以透過確保網路驅動器已正確配置並可從主機和容器訪問來實現這一點。此外,最好在部署到生產環境之前測試容器化過程,以確保網路驅動器已正確掛載並可從容器訪問。
以下是在 Windows 上的 Docker 容器中將網路驅動器作為卷掛載的幾種替代方案:
使用命名卷 - 不要將網路驅動器指定為源,而是可以建立一個命名卷,然後將其掛載到容器中。
docker volume create --name myvol --opt type=none --opt device=//host/network/drive --opt o=bind docker run -it --mount source=myvol,target=/container/path <image>
使用 SMB 掛載 - 您可以使用docker-smb-volume-plugin將 SMB 共享作為卷掛載到您的容器中。此外掛允許您在docker run命令中使用-v標誌,並將網路驅動器指定為源,就像在 Linux 中一樣。
docker run -it -v smb://host/network/drive:/container/path <image>
在 Dockerfile 中使用網路共享 - 您可以使用RUN命令,在 Dockerfile 中使用net use命令將網路共享掛載到您的容器中,這樣容器就可以訪問該共享。
RUN net use Z: \host
etwork\drive /user:username password
務必考慮每個替代方案的安全性和效能影響,並選擇最適合您用例的方案。
結論
在本文中,我們探討了在 Windows 上的 Docker 中新增網路驅動器作為卷的過程。透過遵循本文中概述的步驟,您可以確保您的網路驅動器已正確配置並可從 Docker 容器內訪問。當您需要在容器之間或主機與容器之間共享資料時,這非常有用。請務必在部署到生產環境之前在開發環境中測試您的配置。