使用Docker部署Milvus并啟用認證的實現(xiàn)
Milvus 是一個開源的向量數(shù)據(jù)庫,專為處理大規(guī)模向量相似性搜索而設(shè)計,常用于 AI 應(yīng)用如推薦系統(tǒng)、圖像搜索和自然語言處理。在 Docker 中部署 Milvus Standalone 模式可以快速啟動一個單節(jié)點實例,便于開發(fā)和測試。本文將詳細介紹如何通過 Docker 部署 Milvus,并啟用認證功能(即設(shè)置連接密碼),以提升安全性。啟用認證后,所有客戶端連接都需要提供用戶名和密碼,默認用戶為 root,密碼為 Milvus(強烈建議立即更改)。
本文基于 Milvus 的最新文檔(截至 2025 年 9 月),使用 Docker Compose 方式部署(推薦用于支持備份等功能)。如果您使用腳本方式,步驟類似,但 Docker Compose 更靈活。整個過程假設(shè)您在 Linux 環(huán)境下操作。
前提條件
在開始前,確保滿足以下要求:
- Docker 和 Docker Compose 已安裝:Docker 版本至少 20.10,Docker Compose 版本至少 v2.0。您可以通過以下命令檢查:
如果未安裝,請參考 Docker 官方文檔 進行安裝。
docker --version docker compose version
- 硬件要求:至少 4GB 內(nèi)存、2 核 CPU 和 10GB 可用磁盤空間。生產(chǎn)環(huán)境建議更高配置。
- 端口可用:Milvus 默認使用 19530(gRPC)、9091(WebUI)和 2379(etcd)。確保這些端口未被占用。
- 權(quán)限:需要 sudo 權(quán)限來運行 Docker 命令。
如果您是初次使用,建議備份現(xiàn)有數(shù)據(jù),以防操作失誤。
步驟 1: 下載并配置 Docker Compose 文件
Milvus 提供了一個預(yù)配置的 Docker Compose YAML 文件,用于快速啟動 Standalone 實例。
創(chuàng)建一個工作目錄,例如:
mkdir milvus-standalone && cd milvus-standalone
下載
milvus-standalone-docker-compose.yml文件:wget https://github.com/milvus-io/milvus/releases/download/v2.4.11/milvus-standalone-docker-compose.yml -O docker-compose.yml
注意:替換
v2.4.11為最新版本。您可以從 Milvus GitHub Releases 檢查最新標簽。截至 2025 年 9 月,最新穩(wěn)定版為 v2.4.x 系列。(可選)自定義配置:YAML 文件中已包含 etcd、MinIO 和 Milvus 服務(wù)。您可以編輯
docker-compose.yml來調(diào)整卷掛載或環(huán)境變量。例如,數(shù)據(jù)持久化路徑默認為./volumes,您可以修改為絕對路徑。
步驟 2: 啟動 Milvus 服務(wù)
啟動 Docker Compose:
sudo docker compose up -d
這會拉取 Milvus 鏡像(milvusdb/milvus:latest 或指定版本),并在后臺運行 etcd、MinIO(作為對象存儲)和 Milvus Standalone。
驗證服務(wù)是否運行:
sudo docker compose ps
您應(yīng)該看到三個容器:milvus-etcd、milvus-minio 和 milvus-standalone,所有狀態(tài)為 “Up”。
檢查 Milvus 健康狀態(tài):
curl -f http://localhost:9091/healthz
如果返回 “OK”,則啟動成功。
訪問 WebUI:打開瀏覽器訪問
http://localhost:9091/webui/,查看 Milvus 實例信息。此時認證尚未啟用,因此無需密碼。
如果啟動失敗,檢查日志:
sudo docker compose logs milvus-standalone
步驟 3: 啟用認證(RBAC)
Milvus 支持 Role-Based Access Control (RBAC),其中認證是基礎(chǔ)部分。啟用后,所有連接(包括 SDK 和 WebUI)都需要用戶名和密碼。這通過修改 Milvus 配置實現(xiàn)。
停止服務(wù)(如果已運行):
sudo docker compose down
創(chuàng)建或編輯自定義配置文件:Milvus 默認使用
/milvus/configs/milvus.yaml。在 Docker Compose 中,我們可以通過卷掛載覆蓋它。- 在工作目錄下創(chuàng)建
milvus.yaml文件(或下載默認配置并修改):wget https://raw.githubusercontent.com/milvus-io/milvus/master/configs/milvus.yaml -O milvus.yaml
- 編輯
milvus.yaml,在common部分添加或修改:這會啟用 RBAC 和認證。common: security: authorizationEnabled: true
- 在工作目錄下創(chuàng)建
修改
docker-compose.yml以掛載自定義配置:在milvus-standalone服務(wù)下添加卷:volumes: - ${DOCKER_VOLUME_PATH:-./volumes/milvus/db}:/var/lib/milvus/db - ${DOCKER_VOLUME_PATH:-./volumes/milvus/etcd}:/var/lib/milvus/etcd - ${DOCKER_VOLUME_PATH:-./volumes/milvus/logs}:/var/lib/milvus/logs - ${DOCKER_VOLUME_PATH:-./volumes/milvus/meta}:/var/lib/milvus/meta - ./milvus.yaml:/milvus/configs/milvus.yaml # 添加這一行重新啟動服務(wù):
sudo docker compose up -d
啟用后,默認用戶為 root,密碼為 Milvus。WebUI 連接時會提示輸入憑證。
步驟 4: 連接 Milvus 并管理認證
認證啟用后,使用客戶端連接需要提供憑證。推薦使用 Python SDK (pymilvus)。
安裝 SDK:
pip install pymilvus
連接 Milvus(示例代碼):
from pymilvus import connections connections.connect( alias="default", host="localhost", port="19530", user="root", password="Milvus" ) print("Connected successfully!")如果連接失敗,檢查是否提供正確憑證(錯誤如 “Fail connecting to server… authentication failed”)。
立即更改默認密碼(安全最佳實踐):
from pymilvus import utility utility.reset_password( username="root", old_password="Milvus", new_password="YourStrongNewPassword123!" # 使用強密碼 ) print("Password updated!")創(chuàng)建新用戶(可選):
utility.create_user(username="newuser", password="NewPass123!")
驗證 WebUI:訪問
http://localhost:9091/webui/,輸入用戶名和密碼連接。
步驟 5: 管理用戶和角色(高級)
RBAC 允許細粒度控制:
- 列出用戶:
utility.list_users() - 刪除用戶:
utility.drop_user("username") - 創(chuàng)建角色:
utility.create_role("role_name") - 授予權(quán)限:例如,授予角色對特定集合的讀寫權(quán)限。詳細參考 Milvus 文檔。
例如,創(chuàng)建一個只讀角色:
utility.create_role("readonly")
utility.grant_privilege("readonly", object="Collection", object_name="*", privilege="Load")
utility.assign_user_to_role("newuser", "readonly")常見問題排查
- 容器啟動失敗:檢查 Docker 日志,常見原因是端口沖突或配置 YAML 語法錯誤。
- 認證不生效:確保
milvus.yaml正確掛載,并重啟服務(wù)。進入容器驗證:sudo docker exec -it milvus-standalone cat /milvus/configs/milvus.yaml。 - 數(shù)據(jù)丟失:使用卷掛載持久化數(shù)據(jù)。停止服務(wù)時使用
docker compose down而非down -v(后者會刪除卷)。 - 升級 Milvus:編輯
docker-compose.yml中的鏡像標簽為新版本,然后docker compose pull && docker compose up -d。
結(jié)論
通過 Docker 部署 Milvus Standalone 并啟用認證,您可以快速搭建一個安全的向量數(shù)據(jù)庫實例。認證功能防止未經(jīng)授權(quán)訪問,尤其在共享環(huán)境中重要。生產(chǎn)部署建議結(jié)合 TLS 加密和外部存儲(如 S3)。如果遇到問題,參考 Milvus 官方文檔 或社區(qū)論壇。
到此這篇關(guān)于使用Docker部署Milvus并啟用認證的實現(xiàn)的文章就介紹到這了,更多相關(guān)Docker部署Milvus啟用認證內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
docker實現(xiàn)部署fastDFS服務(wù)過程
文章介紹了如何部署FastDFS、修改存儲容器的訪問端口以及拓展tracker.conf文件中的http.server_port配置,主要目的是監(jiān)控和管理Tracker服務(wù)器,但通常不需要特別關(guān)注,重點是Storage的Nginx端口配置,因為這是用戶訪問文件的入口2026-01-01
Docker與firewalld網(wǎng)絡(luò)沖突解決方案
本文主要介紹了Docker容器網(wǎng)絡(luò)與firewalD防火墻服務(wù)在Linux系統(tǒng)中的交互機制及沖突根源解析,并提出四種解決方案,以確保Docker與firewalD規(guī)則管理的兼容性,下面就來詳細的了解一下2026-06-06
docker部署Minio報錯:Fatal glibc error:CPU does&nb
在CentOS 7上使用Docker部署Minio時遇到CPU不支持問題,通過研究確定是版本太新,由于項目經(jīng)費有限,決定降級到CentOS 7,步驟包括拉取Minio鏡像、創(chuàng)建目錄、開放端口和運行2024-12-12
Centos7使用docker部署生產(chǎn)環(huán)境中間件的詳細步驟
這篇文章主要為大家詳細介紹了騰訊云Centos7使用docker部署生產(chǎn)環(huán)境中間件的詳細步驟,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下2025-07-07

