看到这个报错先别急这个问题通常是由于你拉取的 Milvus 镜像版本与系统的 NVIDIA 驱动或是与 NVIDIA Container Toolkit 版本不兼容导致的。这是一个软硬件版本匹配的问题。我们可以通过以下三步重新配置一个能正确调用 GPU 的 Milvus 环境。1. ️ 诊断分析理解错误信息的根源错误信息libcudart.so.12: cannot open shared object file这个错误说明 Milvus 容器内部找不到libcudart.so.12这个文件它是 CUDA 12.x 运行时库的一部分。您的测试结果sudo docker run --rm --runtimenvidia --gpus all nvidia/cuda:12.6.0-base-ubuntu24.04 nvidia-smi命令成功执行。这证明您的系统底层已经具备了运行 GPU 容器的能力。然而您当前使用的 Milvus 镜像可能是在一个没有预装该运行时库的基础镜像上构建的。Milvus 官方不同版本的 GPU 镜像依赖于特定版本的 CUDA 运行时库这与您系统的驱动版本可能不匹配。2. ️ 解决方案概览要解决这个问题最稳妥的方法是为您的 Milvus 显式配置 GPU 支持。这通常需要准备一个专用的docker-compose.yml文件并进行正确的配置以确保容器能获得所需的库支持。3. 详细配置步骤我们将通过以下步骤来配置一个正确的 GPU Milvus 环境。第一步准备 GPU 专用的 Compose 文件Milvus 官方提供了专门为 GPU 准备的 Docker Compose 配置文件。进入您计划存放 Milvus 配置文件的目录。下载官方为 GPU 准备的配置文件。您可以根据使用的 Milvus 版本从以下几个文档链接中获取相应的docker-compose.yml最新版: Milvus 2.6.15 GPU 配置参考历史版本: Milvus 2.6.14 GPU 配置参考您可以使用wget命令下载例如# 以 2.6.15 版本为例请根据您的需要选择版本wgethttps://github.com/milvus-io/milvus/releases/download/v2.6.15/milvus-standalone-docker-compose-gpu.yml-Odocker-compose.yml第二步配置 Compose 文件以分配 GPU下载完成后需要在docker-compose.yml文件中配置 Milvus 服务可以访问哪些 GPU 设备。使用vim或nano等编辑器打开docker-compose.yml文件。找到standalone服务定义下的deploy.resources.reservations.devices部分。在device_ids字段中指定您要分配的 GPU ID。您可以使用nvidia-smi命令查看 GPU 的 ID。standalone:# ... 其他配置 ...deploy:resources:reservations:devices:-driver:nvidiacapabilities:[gpu]device_ids:[0]# 将 0 替换为您实际的 GPU ID如果您有多个 GPU 且希望 Milvus 都能使用可以写成device_ids: [0, 1]。第三步启动 Milvus 服务完成配置文件的修改后使用以下命令启动所有服务sudodockercompose up-d这条命令会后台启动 Milvus、etcd 和 MinIO 三个核心容器。4. ✅ 验证启动服务启动后可以通过以下两个命令来检查运行状态检查容器状态运行sudo docker compose ps确保milvus-standalone的状态为Up。检查服务日志运行sudo docker logs milvus-standalone确认最新的日志中没有再次出现libcudart.so.12或类似的 GPU 相关错误。 补充说明如果仍有问题怎么办彻底清理环境在重新部署之前建议先彻底清理旧的环境。停止并删除旧的容器和镜像sudo docker compose down --rmi all或sudo docker stop ...以避免版本冲突。检查 NVIDIA Container Toolkit如果配置后仍无法正常工作可以重新安装 NVIDIA Container Toolkit。这是让 Docker 容器能够调用宿主机 NVIDIA 驱动和 GPU 的关键工具确保它已正确安装和配置。使用 CPU 版本临时替代如果您暂时不需要 GPU 加速可以先改用 CPU 版本的 Milvus 来验证其他功能是否正常。查阅官方完整指南上述操作步骤基于 Milvus 官方文档您也可以直接查阅以获取更详细的说明。配置完成后您可以先运行docker compose logs milvus-standalone看看是否还有报错。如果一切正常就可以继续其他的向量检索工作了