本人使用的是京东云服务器docker配置milvus
参考教程:https://blog.csdn.net/withme977/article/details/137270087
需要注意:虚拟机安装
pymilvus和docker安装milvus版本需要对应,否则会出现connection失败问题
查看虚拟机pymilvus版本:pip show pymilvus
查看docker安装milvus版本:docker-compose.yml
所以,你按照我的版本配置就不会出现问题
首先确保安装了docker 、docker 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


1990

被折叠的 条评论
为什么被折叠?



