centos系统docker配置milvus-standalone和 Milvus WebUI 教程

本人使用的是京东云服务器docker配置milvus

参考教程:https://blog.csdn.net/withme977/article/details/137270087

需要注意:虚拟机安装pymilvus和docker安装milvus版本需要对应,否则会出现connection失败问题
查看虚拟机pymilvus版本:pip show pymilvus
在这里插入图片描述
查看docker安装milvus版本:docker-compose.yml
在这里插入图片描述

所以,你按照我的版本配置就不会出现问题

首先确保安装了dockerdocker compose

docker -- version
docker-compose --version

milvus安装

创建milvus工作目录

mkdir milvus
# 进入到新建的目录
cd milvus

接下来需要下载docker-compose.yml milvus.yml文件: (暂时不用milvus.yml
在这里插入图片描述

下载docker-compose.yml,或者你也可以直接用我提供的代码:

# docker-compose.yml (Milvus + Attu)
version: '3.5'

services:
  etcd:
    container_name: milvus-etcd
    image: quay.io/coreos/etcd:v3.5.16
    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://127.0.0.1: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.2023-03-20T20-16-18Z
    environment:
      MINIO_ACCESS_KEY: minioadmin
      MINIO_SECRET_KEY: minioadmin
    ports:
      - "9091:9091"
      - "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.5.4
    command: ["milvus", "run", "standalone"]
    security_opt:
      - seccomp:unconfined
    environment:
      ETCD_ENDPOINTS: etcd:2379
      MINIO_ADDRESS: minio:9000
    volumes:
      - ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/milvus:/var/lib/milvus
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:9091/healthz"]
      interval: 30s
      start_period: 90s
      timeout: 20s
      retries: 3
    ports:
      - "9001:9001"
      - "19531:19530"
    depends_on:
      - "etcd"
      - "minio"

  # ✅ 新增可视化界面 Attu
  attu:
    container_name: attu
    image: zilliz/attu:latest
    environment:
      - MILVUS_URL=tcp://standalone:19530
    ports:
      - "8000:3000"
    depends_on:
      - standalone

networks:
  default:
    name: milvus

注:默认数据挂载在这个目录下:

volumes:
  - ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/milvus:/var/lib/milvus

下载milvus.yml文件,或者你也可以直接用我的:目前不用搞这个

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

启动:

# 拉取镜像
docker compose pull
# 启动容器
docker compose up -d
# 查看启动状态(健康状态)
docker compose ps -a

开启防火墙端口(本人使用的是京东云,如果你使用别的,只需查找相应方法就可以):
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

测试本地是否能够连接milvus:

from pymilvus import connections, utility
import time

def test_connection(host, port, retries=3, delay=2):
    """测试 Milvus 连接
    
    Args:
        host: Milvus 服务器地址
        port: Milvus 服务器端口
        retries: 重试次数
        delay: 重试间隔(秒)
    """
    for attempt in range(retries):
        try:
            print(f"\n尝试连接 Milvus ({attempt + 1}/{retries})...")
            print(f"连接地址: {host}:{port}")
            
            # 尝试连接
            connections.connect(
                alias="default",
                host=host,
                port=port,
                timeout=10,  # 设置超时时间为 10 秒
                user="root",            # 或者配置文件中的用户名
                password="Milvus"       # 默认密码,如果你没有修改
            )
            
            # 获取服务器版本
            version = utility.get_server_version()
            print("✅ 连接成功!")
            print(f"Milvus 版本: {version}")
            
            # 列出所有集合
            collections = utility.list_collections()
            print(f"可用集合: {collections}")
            
            # 断开连接
            connections.disconnect("default")
            return True
            
        except Exception as e:
            print(f"❌ 连接失败 (尝试 {attempt + 1}/{retries}):")
            print(f"错误信息: {str(e)}")
            
            if attempt < retries - 1:
                print(f"等待 {delay} 秒后重试...")
                time.sleep(delay)
            else:
                print("\n所有重试都失败了。请检查:")
                print("1. Milvus 服务是否正在运行")
                print("2. 服务器地址和端口是否正确")
                print("3. 网络连接是否正常")
                print("4. 防火墙设置是否允许该连接")
                return False

if __name__ == "__main__":
    # 测试远程连接
    print("\n=== 测试远程连接 ===")
    test_connection("IP", "19531")

在这里插入图片描述

访问Milvus WebUI

浏览器输入:

http://IP:8000/

在这里插入图片描述

更换端口号

如果你想修改端口号,可以在docker-compose.yml中进行修改ports部分内容:

ports:
  - "9001:9001"
  - "19531:19530"

然后执行:

docker-compose down  # 停止并删除旧容器(不会删除镜像和数据)
docker-compose up -d  # 使用新配置重新启动容器

更换milvus版本

删除旧容器与数据,需要进入旧的docker-compose.yml目录下:

docker-compose down -v

在这里插入图片描述

拉取新版 Milvus 2.5.4 的 Docker Compose 配置:

wget https://github.com/milvus-io/milvus/releases/download/v2.5.4/milvus-standalone-docker-compose.yml -O docker-compose.yml

启动新版本:

docker-compose up -d
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值