docker安装milvus
docker-compose 安装 milvus
总共安装4个服务
- etcd : 存储解析milvus的数据
- minio : 文件服务器
- milvus : 主要的向量数据库
- attu : milvus的可视化界面工具
docker-compose 安装
其他3个服务不同版本差距不大,
但是不同版本的milvus差距很大
我的milvus版本为: milvusdb/milvus:v2.3.12
version: '3.5'
services:
etcd:
container_name: milvus-etcd
image: quay.io/coreos/etcd:v3.5.5
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: 5s
timeout: 3s
retries: 10
minio:
container_name: milvus-minio
image: minio/minio:RELEASE.2022-11-29T23-40-49Z
environment:
MINIO_ACCESS_KEY: minioadmin
MINIO_SECRET_KEY: minioadmin
ports:
- "9001:9001"
- "9002: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: 5s
timeout: 5s
retries: 10
standalone:
container_name: milvus-standalone
image: milvusdb/milvus:v2.3.12
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:
- "19530:19530"
- "9091:9091"
depends_on:
- "etcd"
- "minio"
attu:
container_name: attu
image: zilliz/attu:v2.3.9
environment:
MILVUS_URL: milvus-standalone:19530
ports:
- "3000:3000"
depends_on:
- "standalone"
networks:
default:
name: milvus
如果本机有网络,那就直接在本机执行 docker-compose up -d 安装即可;
如果本机没网络,那就去别的有网络的地方下载docker镜像,然后转移到本机;
如果找不到镜像,可以去以下几个网站找一下
https://docker.1ms.run
https://docker.xuanyuan.me
https://dislabaiot.xyz
https://docker.sunzishaokao.com
https://hub.rat.dev
https://doublezonline.cloud
https://dislabaiot.xyz
https://xdark.top
启动成功应该显示如下
启动命令:docker-compose up -d
此时启动,milvus-standalone 服务可能跑不起来,或者跑十几秒就挂了,因为他连不上minio文件服务器,此时我们需要打开浏览器,连接 服务器ip:9001,登录minio管理界面,在bucket列表,生成一个a-bucket的桶,并设置为public;
再 docker restart milvus-standalone
应该成功了,查看容器允许信息;
docker ps
c10b8405b683 milvusdb/milvus:v2.3.12 "/tini -- milvus run…" 21 minutes ago Up 21 minutes (healthy) 0.0.0.0:9091->9091/tcp, :::9091->9091/tcp, 0.0.0.0:19530->19530/tcp, :::19530->19530/tcp milvus-standalone
62497dda89e3 quay.io/coreos/etcd:v3.5.5 "etcd -advertise-cli…" 21 minutes ago Up 21 minutes (healthy) 2379-2380/tcp milvus-etcd
059b5e105d2d minio/minio:RELEASE.2022-11-29T23-40-49Z "/usr/bin/docker-ent…" 21 minutes ago Up 21 minutes (healthy) 0.0.0.0:9001->9001/tcp, :::9001->9001/tcp, 0.0.0.0:9002->9000/tcp, :::9002->9000/tcp milvus-minio
92df20ce7923 zilliz/attu:v2.3.9 "docker-entrypoint.s…" 23 hours ago Up 23 hours 0.0.0.0:3000->3000/tcp, :::3000->3000/tcp attu
可视化界面
访问attu: 浏览器输入 ip:3000
踩坑记录
端口占用
运行的时候,发现端口被占用,导致起不动,记得用命令:netstat -ntulp|grep 你的端口 来检测是否被占用端口;
必须要开放出去的端口 : 9001-minio的端口,需要我们启动后设置桶信息;3000-attu端口,可视化界面;19530-milvus端口,核心服务;
milvus访问minio
重点:
当前docker-compose,指定的这四个容器是在同一网络下,
networks:
default:
name: milvus
因此,下面这行的端口,要用容器本身的端口9000,不能用映射出来的9002
MINIO_ADDRESS: minio:9000
提示:如果你的网络模式是host,或者bridge,这里访问的信息就要改成:
MINIO_ADDRESS: 你的宿主机IP:你本机映射的端口