杂记 | 在Linux上使用Docker-compose安装单机版Milvus向量数据库并配置访问控制和可视化面板(Attu)

本文详细介绍了Milvus向量数据库的安装过程,包括创建工作目录、下载docker-compose.yml文件、配置attu可视化面板和修改安全设置。重点强调了其高效检索性能、分布式特性以及在AI应用中的适用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


01 Milvus向量数据库简介

Milvus是一款开源的向量数据库,它专为AI应用设计,用于管理和检索海量的特征向量。Milvus的优势主要包括:

  1. 高效的向量检索性能:Milvus采用了多种先进的索引算法,如IVF, HNSW, ANNOY等,能够在大规模数据集上实现高效的近似最近邻搜索。

  2. 易于扩展和维护:Milvus支持水平和垂直扩展,能够适应不断增长的数据规模和查询需求。它的分布式架构使得数据存储和计算能力可以灵活扩展。

  3. 多种数据持久化选项:Milvus支持SSD, HDD等多种存储介质,并且可以与多种持久化存储解决方案集成,如MinIO, S3等。

  4. 丰富的数据接口:Milvus提供了Python, Java, RESTful等多种语言的SDK,方便开发者在不同的应用场景中使用。

  5. 强大的可扩展性和兼容性:支持各种大小和类型的向量数据,可以与现有的数据处理和机器学习工作流程无缝集成。

  6. 容器化和云原生支持:支持Docker和Kubernetes,方便在云环境中部署和管理。

  7. 开源社区支持:作为一个开源项目,Milvus拥有活跃的社区,不断有新的功能和改进被加入。

Milvus适用于各种需要高效向量检索的应用场景,如推荐系统、图像检索、自然语言处理等。由于其高效、易用和可扩展的特性,Milvus在AI应用开发中越来越受欢迎。

02 安装前的准备

确保已经安装了docker和docker-compose
要求系统至少有8G的内存(但我实际是4G内存也没有任何问题)
参考官方文档的信息:https://milvus.io/docs/prerequisite-docker.md

03 安装

3.1 创建milvus工作目录

下面正式开始安装,在Linux系统上新建一个工作目录,以root目录为例:

# 切换到root目录
cd /root

# 新建一个名为milvus的目录用于存放数据 目录名称可以自定义
mkdir milvus

# 进入到新建的目录
cd milvus

3.2 下载并编辑docker-compose.yml

在下载最新的docker-compose.yml文件前,可以先进入到Github项目主页查看最新版本的milvus:
https://github.com/milvus-io/milvus/releases
在这里插入图片描述
下载安装文件,注意这里的路径版本是v2.3.5,根据自己实际情况选择CPU和GPU版本,不清楚的话就选CPU版本。

# CPU单机版
wget https://github.com/milvus-io/milvus/releases/download/v2.3.5/milvus-standalone-docker-compose.yml -O docker-compose.yml
# GPU单机版
wget https://github.com/milvus-io/milvus/releases/download/v2.3.5/milvus-standalone-docker-compose-gpu.yml -O docker-compose.yml

这部分参考官方文档:https://milvus.io/docs/install_standalone-docker.md

下载完成后编辑docker-compose.yml文件,在其中添加attu可视化面板的容器
attu的最新版本参阅官方release页面:https://github.com/zilliztech/attu/releases
在这里插入图片描述

version: '3'

services:
  etcd:
	...(略)

  minio:
	...(略)

  standalone:
	...(略)

  # 在原docker-compose文件的这个位置添加下面这个attu容器,注意版本号和行前空格。
  attu:
    container_name: attu
    image: zilliz/attu:v2.3.6
    environment:
      MILVUS_URL: milvus-standalone:19530
    ports:
      - "8000:3000"  # 外部端口8000可以自定义
    depends_on:
      - "standalone"

# network这部分是原文件就有的,保持不动
networks:
  default:
    name: milvus

3.3 下载milvus.yml文件

该文件是milvus的配置文件,容器中内置,但如果要修改配置,需要单独下载,这里为了做访问控制,就需要修改配置。

# 注意改成自己对应的milvus版本号
wget https://raw.githubusercontent.com/milvus-io/milvus/v2.3.5/configs/milvus.yaml

下载好后,确保该文件位于milvus工作目录下,然后编辑该文件,找到其中的common > security > authorizationEnabled并将其设置为true
在这里插入图片描述
下载后,修改docker-compose.yml做资源映射,在图中的位置:
在这里插入图片描述

...
  standalone:
    container_name: milvus-standalone
    image: milvusdb/milvus:v2.3.5
	...(略)
    volumes:
      - ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/milvus:/var/lib/milvus
      # 新增下面这一行来实现配置文件的映射
      - ${DOCKER_VOLUME_DIRECTORY:-.}/milvus.yaml:/milvus/configs/milvus.yaml
	...(略)
...

3.4 启动milvus

# 拉取镜像
docker-compose pull

# 启动容器
docker-compose up -d

# 查看启动状态(健康状态)
docker-compose ps -a

# 停止容器
docker-compose down

放开端口
连接数据库需要放开19530端口,这是milvus的默认端口,可在docker-compose.yml中修改。
访问可视化面板放开8000端口(刚才自己设置的)做反向代理的话可以不用放开此端口。

04 访问可视化面板并修改密码

访问http://ip:8000,初始账号密码如下图:
在这里插入图片描述
进入后修改账号和密码:
在这里插入图片描述
这里更新并提交后网页可能会提示异常,是正常现象,此时退出并使用新密码登录即可看到修改成功了。
(完)

### 如何通过 Docker Compose 安装 Milvus Attu 要通过 Docker Compose 安装 Milvus Attu,可以按照以下方法操作: #### 下载配置文件 首先需要下载适用于特定版本的 `docker-compose.yml` 文件。此文件定义了容器服务的设置。 ```bash wget https://github.com/milvus-io/milvus/releases/download/v2.5.0-beta/milvus-standalone-docker-compose.yml -O docker-compose.yml ``` 上述命令会将官方发布的单机版 MilvusDocker 配置文件保存为当前目录下的 `docker-compose.yml`[^1]。 #### 启动 Milvus 单机服务 在与 `docker-compose.yml` 文件相同的目录下执行以下命令来启动 Milvus 服务: ```bash sudo docker-compose up -d ``` 这一步将会基于配置文件中的定义创建运行多个容器,包括核心的 Milvus 服务以及其依赖组件(如 etcd 或 minio)。如果一切正常,您应该看到类似以下的日志输出表示成功完成初始化过程[^2]: ``` Creating milvus-etcd ... done Creating milvus-minio ... done Creating milvus-standalone ... done ``` #### 运行自定义组合命令 (可选) 如果您希望更明确地指定使用的 YAML 文件路径,则可以通过 `-f` 参数手动指明目标文件位置: ```bash docker-compose -f milvus-standalone-docker-compose.yml up -d ``` 这种方式特别适合当工作目录中有多个不同用途的 compose 文件时使用[^3]。 #### 添加 Attu 支持 目前官方文档未提供直接集成 Attu 到同一个 `docker-compose.yml` 中的方法;但是用户可以选择单独部署或者利用其他方式实现两者之间的交互访问。通常情况下,只需确保网络可达性端口映射正确无误即可满足基本需求。 对于具体步骤而言,可能涉及额外拉取镜像、调整环境变量等内容,建议参考最新版本说明获取最精确指导信息。 --- ### 注意事项 - 确认本地已安装Docker Engine Docker Compose 工具链。 - 如果遇到权限错误,请尝试赋予脚本适当读写权利或切换至管理员模式重试。 - 不同操作系统平台间可能存在细微差异,请参照对应发行指南处理特殊场景问题。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿林仔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值