吐血整理:在 Docker 中运行 Milvus

直接用docker 错误命令(这个我试了三遍,浪费了很多时间):

复制代码
docker run -d --name milvus -p 19530:19530 -p 9091:9091 -v /var/lib/milvus:/var/lib/milvus milvusdb/milvus:latest

先看报错:

复制代码
2025-02-24 16:02:39 ERROR: ld.so: object '/milvus/lib/' from LD_PRELOAD cannot be preloaded (cannot read file data): ignored.
2025-02-24 16:02:39 tini (tini version 0.19.0 - git.de40ad0)
2025-02-24 16:02:39 Usage: tini [OPTIONS] PROGRAM -- [ARGS] | --version
2025-02-24 16:02:39 
2025-02-24 16:02:39 Execute a program under the supervision of a valid init process (tini)
2025-02-24 16:02:39 
2025-02-24 16:02:39 Command line options:
2025-02-24 16:02:39 
2025-02-24 16:02:39   --version: Show version and exit.
2025-02-24 16:02:39   -h: Show this help message and exit.
2025-02-24 16:02:39   -s: Register as a process subreaper (requires Linux >= 3.4).
2025-02-24 16:02:39   -p SIGNAL: Trigger SIGNAL when parent dies, e.g. "-p SIGKILL".
2025-02-24 16:02:39   -v: Generate more verbose output. Repeat up to 3 times.
2025-02-24 16:02:39   -w: Print a warning when processes are getting reaped.
2025-02-24 16:02:39   -g: Send signals to the child's process group.
2025-02-24 16:02:39   -e EXIT_CODE: Remap EXIT_CODE (from 0 to 255) to 0.
2025-02-24 16:02:39   -l: Show license and exit.
2025-02-24 16:02:39 
2025-02-24 16:02:39 Environment variables:
2025-02-24 16:02:39 
2025-02-24 16:02:39   TINI_SUBREAPER: Register as a process subreaper (requires Linux >= 3.4).
2025-02-24 16:02:39   TINI_VERBOSITY: Set the verbosity level (default: 1).
2025-02-24 16:02:39   TINI_KILL_PROCESS_GROUP: Send signals to the child's process group.
2025-02-24 16:02:39 
2025-02-24 16:06:03 ERROR: ld.so: object '/milvus/lib/' from LD_PRELOAD cannot be preloaded (cannot read file data): ignored.
2025-02-24 16:06:03 tini (tini version 0.19.0 - git.de40ad0)
2025-02-24 16:06:03 Usage: tini [OPTIONS] PROGRAM -- [ARGS] | --version
2025-02-24 16:06:03 
2025-02-24 16:06:03 Execute a program under the supervision of a valid init process (tini)
2025-02-24 16:06:03 
2025-02-24 16:06:03 Command line options:
2025-02-24 16:06:03 
2025-02-24 16:06:03   --version: Show version and exit.
2025-02-24 16:06:03   -h: Show this help message and exit.
2025-02-24 16:06:03   -s: Register as a process subreaper (requires Linux >= 3.4).
2025-02-24 16:06:03   -p SIGNAL: Trigger SIGNAL when parent dies, e.g. "-p SIGKILL".
2025-02-24 16:06:03   -v: Generate more verbose output. Repeat up to 3 times.
2025-02-24 16:06:03   -w: Print a warning when processes are getting reaped.
2025-02-24 16:06:03   -g: Send signals to the child's process group.
2025-02-24 16:06:03   -e EXIT_CODE: Remap EXIT_CODE (from 0 to 255) to 0.
2025-02-24 16:06:03   -l: Show license and exit.
2025-02-24 16:06:03 
2025-02-24 16:06:03 Environment variables:
2025-02-24 16:06:03 
2025-02-24 16:06:03   TINI_SUBREAPER: Register as a process subreaper (requires Linux >= 3.4).
2025-02-24 16:06:03   TINI_VERBOSITY: Set the verbosity level (default: 1).
2025-02-24 16:06:03   TINI_KILL_PROCESS_GROUP: Send signals to the child's process group.
2025-02-24 16:06:03

这个错误信息主要有两个部分:

  1. ld.so: object '/milvus/lib/' from LD_PRELOAD cannot be preloaded :这个错误通常与库预加载配置有关,LD_PRELOAD 环境变量指定的库文件无法被正确读取。可能是路径 /milvus/lib/ 指定不正确,或者是该路径下没有实际存在的库文件。你可以检查是否该路径下有有效的 .so 文件,并确保路径配置正确。

  2. tini 使用信息 :这是容器启动过程中调用 tini 的输出,tini 是一个用于处理进程管理的工具,通常用于确保容器中运行的程序是由一个有效的初始化进程管理的。这个输出本身并不是错误,它只是提供了 tini 的帮助信息。

然后去官网找到了安装方法: 在 Docker(Linux)中运行 Milvus | Milvus 文档

步骤这边贴出来:

前提条件:

在 Docker 中运行 Milvus

Milvus 提供了一个安装脚本,可将其安装为 Docker 容器。在 Microsoft Windows 上安装 Docker Desktop 后,就可以在管理员模式下通过 PowerShell 或 Windows Command Prompt 以及 WSL 2 访问 Docker CLI。

从 PowerShell 或 Windows 命令提示符

如果你更熟悉 PowerShell 或 Windows Command Prompt,命令提示符如下。

  1. 在管理员模式下右击并选择以管理员身份运行,打开 Docker Desktop。

  2. 下载安装脚本并将其保存为standalone.bat

    Invoke-WebRequest https://raw.githubusercontent.com/milvus-io/milvus/refs/heads/master/scripts/standalone_embed.bat -OutFile standalone.bat

运行下载的脚本,将 Milvus 作为 Docker 容器启动。

复制代码
C:\>standalone.bat start
Wait for Milvus starting...
Start successfully.
To change the default Milvus configuration, edit user.yaml and restart the service.

运行安装脚本后

  • 名为Milvus-standalone 的 docker 容器已在19530 端口启动。

  • 嵌入式 etcd 与 Milvus 安装在同一个容器中,服务端口为2379 。其配置文件被映射到当前文件夹中的embedEtcd.yaml

  • Milvus 数据卷被映射到当前文件夹中的volumes/milvus

可以使用以下命令管理 Milvus 容器和存储的数据。

复制代码
C:\>standalone.bat stop
Stop successfully.

C:\>standalone.bat delete
Delete Milvus container successfully. # Container has been removed.
Delete successfully. # Data has been removed.
相关推荐
卡布奇诺-海晨9 分钟前
MySQL的MVCC机制
数据库·mysql
hao_wujing36 分钟前
攻击模型的恶意行为检测
网络·数据库·php
Huathy-雨落江南,浮生若梦1 小时前
k8s入门教程(集群部署、使用,镜像拉取失败网络问题排查)
网络·容器·kubernetes
秃头摸鱼侠2 小时前
MySQL查询语句(续)
数据库·mysql
MuYiLuck2 小时前
【redis实战篇】第八天
数据库·redis·缓存
睡觉待开机2 小时前
6. MySQL基本查询
数据库·mysql
罗技1232 小时前
我用Amazon Q写了一个Docker客户端,并上架了懒猫微服商店
运维·docker·容器
大熊猫侯佩2 小时前
由一个 SwiftData “诡异”运行时崩溃而引发的钩深索隐(三)
数据库·swiftui·swift
大熊猫侯佩2 小时前
由一个 SwiftData “诡异”运行时崩溃而引发的钩深索隐(二)
数据库·swiftui·swift
大熊猫侯佩3 小时前
用异步序列优雅的监听 SwiftData 2.0 中历史追踪记录(History Trace)的变化
数据库·swiftui·swift