Milvus 是一个高性能的开源向量数据库 ,广泛应用于RAG系统向量检索。安装 Milvus 的方法有多种,包括 Docker 安装源码安装 和 二进制文件安装。本文主要讲基于docker的安装方法。

前置准备:

1.安装了 Docker 和 Docker Compose。

可以通过以下命令检查是否安装了 Docker 和 Docker Compose:

docker --version
docker-compose --version

2.下载官方的 docker-compose.yml 文件

Releases · milvus-io/milvus

3.拉取镜像并启动服务

root@cyz:~# docker-compose -f docker-compose.yml up -d

4. 记录一次踩坑经历

由于原本环境启用了minio服务,导致milvus自带的minio服务总是启动不起来,停掉原来的minio也总是报错(估计是两个minio服务的配置文件冲突了):

于是删除原有的minio容器和镜像,并重新拉起服务

root@cyz:~# docker-compose down
Stopping milvus-standalone ... done
Stopping milvus-etcd       ... done
Removing milvus-standalone         ... done
Removing milvus-etcd               ... done
Removing 0c613052b8e3_milvus-minio ... done
Removing network milvus
root@cyz:~#
root@cyz:~# sudo rm -rf ./volumes/minio
root@cyz:~#
total 104
drwx------  9 root root    4096 Apr  1 10:37 ./
drwxr-xr-x 21 root root    4096 Apr  1 09:54 ../
-rw-------  1 root root     147 Mar 30 09:16 .Xauthority
-rw-------  1 root root   22412 Mar 27 17:18 .bash_history
-rw-r--r--  1 root root    3180 Feb 13 14:15 .bashrc
drwx------  2 root root    4096 Feb  2 09:24 .cache/
drwxr-xr-x  3 root root    4096 Feb 13 14:16 .config/
drwx------  3 root root    4096 Feb  3 10:20 .docker/
-rw-r--r--  1 root root       0 Mar 30 09:16 .motd_shown
drwxr-xr-x  4 root root    4096 Feb 13 11:30 .npm/
drwx------ 11 root root    4096 Feb 13 15:53 .openclaw/
-rw-r--r--  1 root root     161 Jul  9  2019 .profile
-rw-------  1 root root       7 Feb  2 11:37 .python_history
drwx------  2 root root    4096 Feb 13 12:07 .ssh/
-rw-------  1 root docker 13067 Apr  1 10:37 .viminfo
-rw-r--r--  1 root root     215 Mar 30 14:21 .wget-hsts
-rw-r--r--  1 root root    1790 Apr  1 10:40 docker-compose.yml
drwxr-xr-x  4 root root    4096 Apr  1 10:45 volumes/
root@cyz:~# docker-compose up -d
Creating network "milvus" with the default driver
Creating milvus-etcd  ... done
Creating milvus-minio ... done
Creating milvus-standalone ... done

5.设置密码

步骤 1:下载 milvus.yaml 配置文件

在服务器上(与 docker-compose.yml 同级目录 /root 下)执行:

cd /root
wget https://raw.githubusercontent.com/milvus-io/milvus/v2.6.10/configs/milvus.yaml
步骤 2:修改 milvus.yaml 开启认证

用编辑器打开 milvus.yaml,找到 common.security 部分,修改如下:

common:
  security:
    authorizationEnabled: true    # 改为 true,开启认证

说明:开启认证后,Milvus 会自动创建一个默认超级用户:
• 用户名:root
• 密码:Milvus
你可以在成功连接后,用代码修改此默认密码或创建新用户。

步骤 3:修改 docker-compose.yml 挂载配置文件

在 standalone 服务的 volumes 中,新增一行挂载刚才下载并修改的 milvus.yaml

version: '3.5'

services:
  etcd:
    container_name: milvus-etcd
    image: quay.io/coreos/etcd:v3.5.25
    environment:
      - ETCD_AUTO_COMPACTION_MODE=revision
      - ETCD_AUTO_COMPACTION_RETENTION=1000
      - ETCD_QUOTA_BACKEND_BYTES=4294967296
      - ETCD_SNAPSHOT_COUNT=50000
    volumes:
      - ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/etcd:/etcd
    command: etcd -advertise-client-urls=http://etcd:2379 -listen-client-urls http://0.0.0.0:2379 --data-dir /etcd
    healthcheck:
      test: ["CMD", "etcdctl", "endpoint", "health"]
      interval: 30s
      timeout: 20s
      retries: 3

  minio:
    container_name: milvus-minio
    image: minio/minio:RELEASE.2024-12-18T13-15-44Z
    environment:
      MINIO_ACCESS_KEY: minioadmin
      MINIO_SECRET_KEY: minioadmin
    ports:
      - "9001:9001"
      - "9000:9000"
    volumes:
      - ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/minio:/minio_data
    command: minio server /minio_data --console-address ":9001"
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
      interval: 30s
      timeout: 20s
      retries: 3

  standalone:
    container_name: milvus-standalone
    image: milvusdb/milvus:v2.6.10
    command: ["milvus", "run", "standalone"]
    security_opt:
    - seccomp:unconfined
    environment:
      ETCD_ENDPOINTS: etcd:2379
      MINIO_ADDRESS: minio:9000
      MQ_TYPE: woodpecker
    volumes:
      - ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/milvus:/var/lib/milvus
      - ./milvus.yaml:/milvus/configs/milvus.yaml    #  新增这一行
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:9091/healthz"]
      interval: 30s
      start_period: 90s
      timeout: 20s
      retries: 3
    ports:
      - "19530:19530"
      - "9091:9091"
    depends_on:
      - "etcd"
      - "minio"

networks:
  default:
    name: milvus
步骤 4:重启 Milvus 服务
cd /root
docker-compose -f docker-compose.yml down
docker-compose -f docker-compose.yml up -d

6:更新密码

from pymilvus import connections, update_password


def connect_milvus():
    """连接 Milvus 服务器并修改密码"""

    import pymilvus
    print("当前 pymilvus 版本:", pymilvus.__version__)

    try:
        # 1. 使用默认账号密码进行连接
        connections.connect(
            alias="default",
            host="xxxxxxx",  # 你的服务器公网IP
            port="19530",
            user="root",           # 默认用户名
            password="Milvus"      # 默认密码
        )
        print("Milvus 连接成功")

        # 2. 修改密码
        update_password(
            user="root",               # 要修改密码的用户名
            old_password="Milvus",     # 旧密码
            new_password="YourNewPassword123"  # 在这里写你想要设置的新密码
        )
        print("密码修改成功!")

    except Exception as e:
        print(f"操作失败: {e}")


connect_milvus()

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐