milvus向量化数据库部署
1、环境准备
docker安装
sudo snap remove docker
sudo apt install docker-ce docker-ce-cli containerd.io
docker-compose安装
sudo curl -L "https://get.daocloud.io/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" \-o /usr/local/bin/docker-compose
赋权
sudo chmod +x /usr/local/bin/docker-compose
2、安装milvus
使用docker-compose部署单机版milvus,让你快速体验
wget https://github.com/milvus-io/milvus/releases/download/v2.3.1/milvus-standalone-docker-compose.yml -O docker-compose.yml
下载完成后,内容如下
version: '3.5'services:etcd:container_name: milvus-etcdimage: quay.io/coreos/etcd:v3.5.5environment:- ETCD_AUTO_COMPACTION_MODE=revision- ETCD_AUTO_COMPACTION_RETENTION=1000- ETCD_QUOTA_BACKEND_BYTES=4294967296- ETCD_SNAPSHOT_COUNT=50000volumes:- ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/etcd:/etcdcommand: etcd -advertise-client-urls=http://127.0.0.1:2379 -listen-client-urls http://0.0.0.0:2379 --data-dir /etcdhealthcheck:test: ["CMD", "etcdctl", "endpoint", "health"]interval: 30stimeout: 20sretries: 3minio:container_name: milvus-minioimage: minio/minio:RELEASE.2023-03-20T20-16-18Zenvironment:MINIO_ACCESS_KEY: minioadminMINIO_SECRET_KEY: minioadminports:- "9001:9001"- "9000:9000"volumes:- ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/minio:/minio_datacommand: minio server /minio_data --console-address ":9001"healthcheck:test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]interval: 30stimeout: 20sretries: 3standalone:container_name: milvus-standaloneimage: milvusdb/milvus:v2.3.1command: ["milvus", "run", "standalone"]environment:ETCD_ENDPOINTS: etcd:2379MINIO_ADDRESS: minio:9000volumes:- ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/milvus:/var/lib/milvushealthcheck:test: ["CMD", "curl", "-f", "http://localhost:9091/healthz"]interval: 30sstart_period: 90stimeout: 20sretries: 3ports:- "19530:19530"- "9091:9091"depends_on:- "etcd"- "minio"networks:default:name: milvus
从yml中看到,一共部署了etcd、minio、milvus三个组建
yml中环境变量,同级目录创建.env文件定义环境变量
vi .env
DOCKER_VOLUME_DIRECTORY=/data
最后部署
docker-compose up -d
root@10:/data# docker-compose up -d
Creating network "milvus" with the default driver
Creating milvus-etcd ... done
Creating milvus-minio ... done
Creating milvus-standalone ... done
检查容器状态正常即可
3、 FAQ
milvus无法启动
root@10:/data# docker logs 3cbb921f7bf7
root@10:/data# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3cbb921f7bf7 milvusdb/milvus:v2.3.1 "/tini -- milvus run…" 9 minutes ago Exited (132) 9 minutes ago milvus-standalone
1f540797c65d minio/minio:RELEASE.2023-03-20T20-16-18Z "/usr/bin/docker-ent…" 9 minutes ago Up 9 minutes (healthy) 0.0.0.0:9000-9001->9000-9001/tcp, [::]:9000-9001->9000-9001/tcp milvus-minio
d880adb9b320 quay.io/coreos/etcd:v3.5.5 "etcd -advertise-cli…" 9 minutes ago Up 9 minutes (healthy) 2379-2380/tcp milvus-etcd
root@10:/data# docker logs 3cbb921f7bf7
root@10:/data# dmesg -T | tail -n 10
[Wed Nov 5 14:16:46 2025] eth0: renamed from vethad41c95
[Wed Nov 5 14:16:46 2025] IPv6: ADDRCONF(NETDEV_CHANGE): veth24babf2: link becomes ready
[Wed Nov 5 14:16:46 2025] docker0: port 1(veth24babf2) entered blocking state
[Wed Nov 5 14:16:46 2025] docker0: port 1(veth24babf2) entered forwarding state
[Wed Nov 5 14:16:57 2025] traps: milvus[108562] trap invalid opcode ip:7f1f08c75bdb sp:7ffc529f4f58 error:0 in libknowhere.so[7f1f08c22000+7d5000]
[Wed Nov 5 14:18:43 2025] docker0: port 1(veth24babf2) entered disabled state
[Wed Nov 5 14:18:43 2025] vethad41c95: renamed from eth0
[Wed Nov 5 14:18:43 2025] docker0: port 1(veth24babf2) entered disabled state
[Wed Nov 5 14:18:43 2025] device veth24babf2 left promiscuous mode
[Wed Nov 5 14:18:43 2025] docker0: port 1(veth24babf2) entered disabled state

