使用 Docker Compose 執行 Milvus(Linux)

本頁面說明如何使用 Docker Compose 在 Docker 中啟動 Milvus 實例。

先決條件

安裝 Milvus

Milvus 在其儲存庫中提供了一個 Docker Compose 配置檔案。請下載 v3.0.3 的配置檔案並啟動新的部署:

# Download the configuration file
$ wget https://github.com/milvus-io/milvus/releases/download/v3.0.3/milvus-standalone-docker-compose.yaml -O docker-compose.yaml

# Start Milvus
$ sudo docker compose up -d

Creating milvus-etcd  ... done
Creating milvus-minio ... done
Creating milvus-standalone ... done

預設部署(v3.0.3): docker compose up -d 會啟動三個長期運行的容器 —milvus-etcd (元資料)、milvus-minio (物件儲存)以及milvus-standalone 。訊息佇列採用Woodpecker(內嵌式,以 MinIO / 物件儲存作為其 WAL 後端),因此無需額外建立訊息佇列容器。

此設定還會執行一次性的milvus-volume-init 服務,以準備資料目錄的所有權。完成該任務後,該服務即會退出。

各版本的訊息佇列預設值:

  • 2.5.x— 預設訊息佇列為RocksMQ。
  • 2.6.x 及後續版本— 預設訊息佇列為Woodpecker(內嵌式)。

請使用您打算安裝的發行版所附帶的配置檔。若為現有部署環境,請遵循升級說明,而非將其配置檔替換為新安裝的配置檔。

  • 若無法取得docker compose ,請依照Docker 說明安裝 Compose 外掛程式。

  • 若在拉取映像檔時遇到任何問題,請透過community@zilliz.com聯絡我們,並提供問題詳情,我們將為您提供必要的支援。

啟動 Milvus 後,

  • 名為milvus-standalone、milvus-minio 及milvus-etcd的容器即已啟動。
    • milvus-etcd容器不會向主機公開任何埠號,並將其資料映射至當前資料夾中的volumes/etcd。
    • milvus-minio容器在本地端提供9000和9001埠,並使用預設的驗證憑證,其資料會映射至當前資料夾中的volumes/minio。
    • milvus-standalone容器在本地端以預設設定提供19530埠,並將其資料映射至當前資料夾中的volumes/milvus。

您可以使用以下指令檢查容器是否已啟動並正常運作:

$ docker compose ps

NAME                IMAGE   COMMAND                  SERVICE      CREATED         STATUS                   PORTS
milvus-etcd         …       "etcd -advertise-cli…"   etcd         2 minutes ago   Up 2 minutes (healthy)   2379-2380/tcp
milvus-minio        …       "/usr/bin/docker-ent…"   minio        2 minutes ago   Up 2 minutes (healthy)   9000-9001/tcp
milvus-standalone   …       "/tini -- milvus run…"   standalone   2 minutes ago   Up 2 minutes (healthy)   0.0.0.0:9091->9091/tcp, 0.0.0.0:19530->19530/tcp

您也可以透過http://127.0.0.1:9091/webui/ 存取 Milvus WebUI,以進一步了解您的 Milvus 實例。詳細資訊請參閱Milvus WebUI。

若要測試正在運行的伺服器,請依照《快速入門》中的「使用現有 Milvus 伺服器」路徑,並連線至http://localhost:19530 。請勿使用「.db 」的本地連線區塊,該區塊會啟動一個獨立的 Milvus Lite 資料庫。

(可選)更新 Milvus 設定

若要根據您的需求更新 Milvus 設定,您需要修改milvus-standalone 容器內的/milvus/configs/user.yaml 檔案。

  1. 存取milvus-standalone 容器。

    docker exec -it milvus-standalone bash
    
  2. 新增額外設定以覆寫預設值。 以下假設您需要覆寫預設的proxy.healthCheckTimeout 。有關適用的設定項目,請參閱《系統設定》。

    cat << EOF > /milvus/configs/user.yaml
    # Extra config to override default milvus.yaml
    proxy:
      healthCheckTimeout: 1000 # ms, the interval that to do component healthy check
    EOF
    
  3. 重新啟動milvus-standalone 容器以套用變更。

    docker restart milvus-standalone
    

停止並刪除 Milvus

您可以按照以下步驟停止並刪除此容器

# Stop Milvus
$ sudo docker compose down

# Delete service data
$ sudo rm -rf volumes

升級現有部署

對於 Milvus 2.6.x 獨立部署,請參閱《使用 Docker Compose 升級 Milvus 獨立部署》。在變更 Milvus 映像檔之前,請備份元資料和持久化資料、保留現有的依賴項和設定,並驗證文件中所述的「來源至目標」升級路徑。 請勿將舊版部署的 Compose 檔案替換為上述新安裝的配置。

訊息佇列限制:升級至 Milvus v3.0.3 時,您必須維持當前的訊息佇列選擇。升級過程中不支援在不同的訊息佇列系統之間切換。未來版本將支援變更訊息佇列系統。

Milvus 2.6.x 及後續版本預設使用 Woodpecker,而 2.5.x 部署則預設使用RocksMQ。若您正在升級的部署仍運行 RocksMQ,請在變更 Milvus 映像檔之前,於 `user.yaml ` 中將其固定,以便升級後的實例保留現有的訊息佇列,而非採用新的預設值:

# user.yaml — keep RocksMQ across the upgrade
mq:
  type: rocksmq

當升級後的實例已在 v3.0.3 上運行後,您可以透過「切換訊息佇列」(Switch Message Queue)功能從 RocksMQ 切換至 Woodpecker,此功能自 Milvus 3.0 及後續版本起提供。

可選依賴項

此部署使用Woodpecker(內嵌式,MinIO WAL 後端)處理訊息傳遞、etcd管理元資料,以及MinIO作為物件儲存。若要使用其他訊息佇列或連接外部物件儲存/元資料,請參閱:

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

下一步

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

翻譯者DeepL

Office Hours

Milvus 辦公時間

從 Milvus 的專家 Zilliz 取得生產部署的協助。

預約免費 1:1 課程

免費嘗試托管的 Milvus

Zilliz Cloud 無縫接入,由 Milvus 提供動力,速度提升 10 倍。

開始使用
反饋

這個頁面有幫助嗎?