在 Docker 中執行 Milvus(Windows)

預設情況下,此部署會使用Woodpecker(本機檔案系統)作為訊息佇列,因此無需外部訊息佇列服務。請參閱Woodpecker

本頁面將示範如何使用 Docker Desktop for Windows 在 Windows 上執行 Milvus。

先決條件

在 Docker 中執行 Milvus

Milvus 提供安裝腳本,可將其安裝為 Docker 容器。在 Microsoft Windows 上安裝 Docker Desktop 後,您即可透過 PowerShell 或 Windows 命令提示字元(以系統管理員模式執行),以及透過 WSL 2 存取 Docker CLI。

透過 PowerShell 或 Windows 命令提示字元

若您更熟悉 PowerShell 或 Windows 命令提示字元,請參照以下指令。

  1. 以管理員模式開啟 Docker Desktop:右鍵點擊並選擇「以管理員身分執行」。

  2. 下載安裝腳本,並將其儲存為standalone.bat

    C:\>Invoke-WebRequest https://raw.githubusercontent.com/milvus-io/milvus/refs/heads/master/scripts/standalone_embed.bat -OutFile standalone.bat
    
    
  3. 執行下載的腳本,以 Docker 容器形式啟動 Milvus。

    C:\>standalone.bat start
    Wait for Milvus starting...
    Start successfully.
    To change the default Milvus configuration, edit user.yaml and restart the service.
    
    

    執行安裝腳本後:

    • 一個名為milvus-standalone的 Docker 容器已於19530 埠啟動。

    • 嵌入式 etcd 已隨 Milvus 一起安裝在同一個容器中,並於2379 埠提供服務。其設定檔已映射至當前資料夾中的embedEtcd.yaml

    • Milvus 資料卷已映射至當前資料夾中的volumes/milvus

    您可以使用以下指令來管理 Milvus 容器及儲存的資料。

    # Stop Milvus
    C:\>standalone.bat stop
    Stop successfully.
    
    # Delete Milvus container
    C:\>standalone.bat delete
    Delete Milvus container successfully. # Container has been removed.
    Delete successfully. # Data has been removed.
    
    

透過 WSL 2

若您希望在 Windows 上使用 Linux 命令和 shell 腳本啟動 Milvus,請確保已安裝 WSL 2。有關如何安裝 WSL 2 的詳細資訊,請參閱這篇Microsoft 文章

  1. 啟動 WSL 2。

    C:\>wsl --install
    Ubuntu already installed.
    Starting Ubuntu...
    
    
  2. 下載安裝腳本

    # Download the installation script
    $ curl -sfL https://raw.githubusercontent.com/milvus-io/milvus/master/scripts/standalone_embed.sh -o standalone_embed.sh
    
    # Start the Docker container
    $ bash standalone_embed.sh start
    
    
  3. 以 Docker 容器形式啟動 Milvus。

    $ bash standalone_embed.sh start
    Wait for Milvus Starting...
    Start successfully.
    To change the default Milvus configuration, add your settings to the user.yaml file and then restart the service.
    
    

    您可以使用以下指令來管理 Milvus 容器及儲存的資料。

    # Stop Milvus
    $ bash standalone_embed.sh stop
    Stop successfully.
    
    # Delete Milvus data
    $ bash standalone_embed.sh delete
    Delete Milvus container successfully.
    Delete successfully.
    
    

使用 Docker Compose 執行 Milvus

在 Microsoft Windows 上安裝 Docker Desktop 後,您即可透過 PowerShell 或 Windows 命令提示字元(以系統管理員模式)存取 Docker CLI。您可以在 PowerShell、Windows 命令提示字元或 WSL 2 中執行 Docker Compose 來啟動 Milvus。

透過 PowerShell 或 Windows 命令提示字元

  1. 以管理員模式開啟 Docker Desktop:右鍵點擊並選擇「以管理員身分執行」。

  2. 在 PowerShell 或 Windows 命令提示字元中執行以下指令,以下載 Milvus 獨立版(Standalone)的 Docker Compose 配置檔案並啟動 Milvus。

    # Download the configuration file and rename it as docker-compose.yml
    C:\>Invoke-WebRequest https://github.com/milvus-io/milvus/releases/download/v3.0.0/milvus-standalone-docker-compose.yml -OutFile docker-compose.yml
    
    # Start Milvus
    C:\>docker compose up -d
    Creating milvus-etcd  ... done
    Creating milvus-minio ... done
    Creating milvus-standalone ... done
    
    

    視您的網路連線狀況而定,下載 Milvus 安裝所需的映像檔可能需要一段時間。一旦名為milvus-standalonemilvus-miniomilvus-etcd的容器啟動後,您將看到

    • milvus-etcd容器並未向主機公開任何端口,且將其資料映射至當前資料夾中的volumes/etcd

    • milvus-minio容器在本地端提供90009001埠,並使用預設的驗證憑證,其資料會映射至當前資料夾中的volumes/minio

    • milvus-standalone容器在本地端以預設設定提供19530埠,並將其資料映射至當前資料夾中的volumes/milvus目錄。

若您已安裝 WSL 2,亦可呼叫 Linux 版本的 Docker Compose 指令。

透過 WSL 2

此操作流程與在 Linux 系統中使用 Docker Compose 安裝 Milvus 類似。

  1. 啟動 WSL 2。

    C:\>wsl --install
    Ubuntu already installed.
    Starting Ubuntu...
    
    
  2. 下載 Milvus 配置檔案。

    $ wget https://github.com/milvus-io/milvus/releases/download/v3.0.0/milvus-standalone-docker-compose.yml -O docker-compose.yml
    
    
  3. 啟動 Milvus。

    $ sudo docker compose up -d
    
    Creating milvus-etcd  ... done
    Creating milvus-minio ... done
    Creating milvus-standalone ... done
    
    

常見問題

如何處理「Docker Engine stopped 」錯誤?

在 Windows 上安裝 Docker Desktop 後,若電腦設定不正確,可能會遇到「Docker Engine stopped 」錯誤。此時,您可能需要進行以下檢查:

  1. 檢查虛擬化功能是否已啟用。

    您可透過檢視「工作管理員」中的「效能」分頁,確認虛擬化功能是否已啟用。

    Virtualization in Task Manager 「工作管理員」中的虛擬化設定

    若虛擬化功能已停用,您可能需要檢查主機板韌體的 BIOS 設定。在 BIOS 設定中啟用虛擬化的方法因主機板製造商而異。以華碩(ASUS)主機板為例,您可以參考這篇關於啟用虛擬化的文章

    接著,您需要重新啟動電腦並啟用 Hyper-V。詳細資訊請參閱這篇Microsoft 文章

  2. 檢查 Docker Desktop 服務是否已啟動。

    您可以執行以下指令來啟動 Docker Desktop 服務。

    C:\>net start com.docker.service
    The Docker for Windows Service service is starting.
    The Docker for Windows Service service was started successfully.
    
    
  3. 檢查 WSL 是否已正確安裝。

    您可以執行以下命令來安裝或更新 WSL 2。

    C:\>wsl --update
    Checking for updates.
    The most recent version of Windows Subsystem for Linux is already installed.
    
    
  4. 檢查 Docker Daemon 是否已啟動。

    您需要前往 Docker Desktop 的安裝目錄,並執行 `.\DockerCli.exe -SwitchDaemon ` 來啟動 Docker 守護程式。

    C:\>cd "C:\Program Files\Docker\Docker"
    C:\Program Files\Docker\Docker>.\DockerCli.exe -SwitchDaemon
    Switching to windows engine: Post "http://ipc/engine/switch": open \\.\pipe\dockerBackendApiServer: The system cannot find the file specified.
    
    
  5. 請確認您是否已以系統管理員模式啟動 Docker Desktop。

    請確保您已以系統管理員模式啟動 Docker Desktop。要執行此操作,請右鍵點擊Docker Desktop並選擇「以系統管理員身分執行」。

    Start Docker Desktop as Administrator 以系統管理員身分啟動 Docker Desktop

若您在 WSL 2 上執行 Milvus 時遇到與 WSL 相關的問題,您可能需要檢查是否已按照以下步驟將 Docker Desktop 設定為使用基於 WSL 2 的引擎:

  1. 請確認在「設定」>「一般」中已勾選「使用基於 WSL 2 的引擎」。

    Use the WSL 2 based engine in Docker Desktop Settings 在 Docker Desktop 設定中使用基於 WSL 2 的引擎

  2. 前往「設定>資源>WSL 整合」,從已安裝的 WSL 2 發行版中選擇您要啟用 Docker 整合的發行版。

    Select WSL 2 distributions in Docker Desktop Settings 在 Docker Desktop 設定中選取 WSL 2 發行版

Read config failed error prompt in Milvus startup Milvus 啟動時出現「讀取設定失敗」錯誤提示

若要處理 Milvus 啟動時出現的「讀取設定檔失敗(docker exec )」錯誤,您需要檢查掛載至 Milvus 容器中的卷是否正確。若卷已正確掛載至容器中,您可以使用 指令進入容器,並如下所示列出/milvus/configs資料夾:

List Milvus config files 列出 Milvus 設定檔

Storage V3 預設為停用狀態。在使用依賴此功能的服務前,請先啟用它。有關需求與相容性考量,請參閱Storage V3

下一步

在 Docker 中安裝 Milvus 後,您可以: