使用 Docker Compose 執行 Milvus(Linux)
本頁面說明如何使用 Docker Compose 在 Docker 中啟動 Milvus 實例。
先決條件
- 安裝 Docker。
- 安裝Docker Compose 外掛程式(V2 或更新版本),並透過 `
docker compose version` 指令進行驗證。本說明使用 `docker compose` 指令,而非舊版 `docker-compose` V1 指令。 - 安裝前請先確認硬體與軟體的系統需求。
安裝 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 檔案。
存取
milvus-standalone容器。docker exec -it milvus-standalone bash新增額外設定以覆寫預設值。 以下假設您需要覆寫預設的
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重新啟動
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作為物件儲存。若要使用其他訊息佇列或連接外部物件儲存/元資料,請參閱:
- 訊息佇列:Woodpecker(預設)·Pulsar·Kafka·RocksMQ
- 物件儲存:MinIO(預設)·AWS S3·Azure Blob·GCP Cloud Storage·阿里雲 OSS·騰訊 COS·華為 OBS·S3 相容
- 元資料:etcd
Storage V3 預設為停用狀態。在使用依賴此功能的服務前,請先啟用它。有關需求與相容性考量,請參閱Storage V3。
下一步
在 Docker 中安裝 Milvus 後,您可以:
參閱《快速入門》了解 Milvus 的功能。
學習 Milvus 的基本操作:
將您的 Milvus 叢集部署至雲端:
探索Milvus WebUI,這是專為 Milvus 可觀察性與管理而設計的直覺式網頁介面。
探索Milvus Backup,這是一款用於 Milvus 資料備份的開源工具。
探索Birdwatcher,這是一款用於 Milvus 除錯與動態配置更新的開源工具。
探索Attu,這是一款用於直觀管理 Milvus 的開源圖形化介面工具。