Docker Compose一键部署Milvus单机版(附Attu可视化工具)
1. 环境准备与前置条件在开始部署Milvus单机版之前我们需要确保本地开发环境满足基本要求。我建议使用Ubuntu 20.04或CentOS 7以上版本的操作系统这两个发行版对Docker的支持最为完善。实测下来Windows系统通过WSL2也能运行但可能会遇到文件权限问题新手建议优先选择Linux环境。必须安装的组件清单Docker Engine 20.10.5Docker Compose 2.0.0至少4GB可用内存8GB更稳妥10GB以上磁盘空间安装Docker时有个小技巧直接使用官方的一键安装脚本最省事。在终端执行以下命令curl -fsSL https://get.docker.com | sh sudo systemctl enable --now docker安装完成后建议将当前用户加入docker组避免每次都要sudosudo usermod -aG docker $USER newgrp docker验证Docker是否安装成功docker --version docker-compose --version docker run hello-world如果看到Hello from Docker!的提示信息说明基础环境已经就绪。我遇到过不少初学者卡在权限问题上如果遇到permission denied错误记得检查用户组配置。2. 获取并配置Docker Compose文件Milvus官方提供了开箱即用的docker-compose.yml模板但直接使用原版可能会遇到端口冲突问题。这里我分享一个优化版的配置方案已经调整了健康检查参数和存储卷设置。首先下载官方模板并重命名wget https://github.com/milvus-io/milvus/releases/download/v2.3.1/milvus-standalone-docker-compose.yml -O docker-compose.yml这个文件定义了三个关键服务etcd负责存储集合schema、索引定义等元数据minio对象存储服务保存实际的向量数据milvus-standalone主服务进程我强烈建议修改volumes配置将容器内数据持久化到宿主机特定目录。比如在文件顶部添加x-docker-volume: docker-volume type: none device: ./milvus_data o: bind对于开发环境可以调低etcd的存储配额原配置4GB可能过大environment: - ETCD_QUOTA_BACKEND_BYTES1073741824 # 改为1GB3. 启动核心组件执行部署命令前先确认端口是否被占用。Milvus默认使用以下端口19530gRPC服务端口9091HTTP健康检查端口2379etcd服务端口9000/9001minio API和管理界面启动命令非常简单docker-compose up -d第一次启动时会下载约1.5GB的镜像具体耗时取决于网络状况。我建议在命令后添加--pull always参数确保获取最新镜像docker-compose up -d --pull always验证服务状态时不要只看容器是否运行要确认健康检查通过docker-compose ps理想状态下应该看到三个服务的State都是healthy。如果某个服务反复重启可以查看具体日志docker-compose logs -f etcd4. 安装Attu可视化工具Attu是Milvus官方推出的管理客户端比命令行工具友好得多。部署时要注意版本兼容性必须与Milvus主版本匹配。对于2.3.1版本应该使用docker run -d \ --nameattu \ -p 8000:3000 \ -e MILVUS_URLlocalhost:19530 \ zilliz/attu:v2.3.1如果Milvus运行在远程服务器上需要修改MILVUS_URL环境变量-e MILVUS_URL服务器IP:19530访问Attu时有个常见坑点浏览器缓存可能导致界面加载异常。建议首次访问时使用Chrome隐身模式访问地址http://localhost:8000如果遇到空白页面强制刷新(CtrlF5)5. 验证与基础操作成功登录Attu后我们可以进行端到端验证。首先创建测试集合点击Create Collection输入集合名称如test_collection添加字段idInt64主键embeddingFloatVector维度设为128点击Create插入测试数据时Attu的批量导入功能非常实用。准备一个JSON文件示例[ {id: 1, embedding: [0.1, 0.2, ..., 0.128]}, {id: 2, embedding: [0.3, 0.4, ..., 0.128]} ]建立索引是提升查询性能的关键步骤。在Attu中进入Index标签页选择IVF_FLAT索引类型设置nlist参数为100根据数据量调整点击Create执行向量搜索测试时注意选择正确的度量类型如L2或IP。我建议先用小批量数据验证确认延迟符合预期后再扩展。6. 数据持久化与备份虽然Docker Compose已经配置了卷映射但还需要定期备份关键数据etcd数据位于./milvus_data/volumes/etcdminio数据位于./milvus_data/volumes/minio备份etcd的实用命令docker-compose exec etcd etcdctl snapshot save /etcd/snapshot.dbminio数据可以直接打包备份tar czvf minio_backup.tar.gz ./milvus_data/volumes/minio恢复数据时要注意停服操作docker-compose down # 恢复数据文件 docker-compose up -d7. 性能调优建议单机版部署虽然简单但通过合理配置仍能提升性能。根据我的实测经验建议调整以下参数milvus-standalone服务environment: - COMMON_CACHE_SIZE4GB # 根据内存调整 - COMMON_STORAGE_TYPElocal # 使用本地SSD时设置minio优化command: minio server /minio_data --console-address :9001 --quiet对于开发环境可以关闭部分日志减少IO压力environment: - LOG_LEVELerror监控服务资源使用情况docker stats milvus-standalone milvus-minio milvus-etcd8. 常见问题排查容器启动失败检查端口冲突netstat -tulnp | grep 端口号查看详细日志docker-compose logs --tail100Attu连接超时确认Milvus服务IP是否正确检查防火墙设置验证网络连通性telnet IP 19530性能下降使用top命令查看CPU/内存使用检查磁盘IOiostat -x 1清理缓存echo 3 /proc/sys/vm/drop_caches我在实际项目中遇到过minio存储空间不足的问题建议定期检查docker-compose exec minio mc du /minio_data9. 进阶配置技巧对于需要长期运行的场景建议启用日志轮转logging: driver: json-file options: max-size: 100m max-file: 3如果需要修改时区配置environment: - TZAsia/Shanghai安全加固建议修改minio默认凭证限制etcd访问IP启用Milvus身份验证配置示例environment: - MINIO_ACCESS_KEY自定义账号 - MINIO_SECRET_KEY复杂密码 - ETCD_LISTEN_CLIENT_URLShttp://0.0.0.0:237910. 资源清理与重置开发测试完成后完整清理步骤docker-compose down -v # 删除容器和卷 docker rmi $(docker images | grep milvus | awk {print $3}) # 删除镜像 rm -rf ./milvus_data # 删除数据目录如果只需要重置数据但保留配置docker-compose stop rm -rf ./milvus_data/volumes/* docker-compose start记得定期清理Docker系统资源docker system prune -f
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2414476.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!