吐血整理:在 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.

<think>嗯,用户想了解如何通过Docker运行Milvus。我之前处理过类似的问题,记得Milvus官方文档有提到使用Docker Compose来部署。首先,我需要确认用户是否已经安装了DockerDocker Compose,因为这是前提条件。 用户提供的引用里提到了检查Docker Compose版本,如果是V2的话命令可能不同,比如用`docker compose`而不是`docker-compose`。这点很重要,否则用户可能会遇到命令找不到的问题。需要提醒用户先确认版本,并相应调整命令。 接下来,用户需要下载Milvus的配置文件,比如`milvus-standalone-docker-compose.yml`。我应该给出具体的下载命令,例如使用wget或curl从GitHub获取。同时,启动服务的命令也要明确,根据版本区分是使用`docker-compose`还是`docker compose`。 启动之后,检查容器状态是否正常运行,使用`docker-compose ps`命令。然后可能需要安装Attu进行管理,这部分需要提到如何访问Attu的界面,以及默认的端口和账号信息。 另外,用户可能会遇到常见问题,比如端口冲突或者配置修改。需要列出解决方法,比如修改YML文件中的端口映射,或者如何调整资源限制。停止和清理环境的步骤也不能少,方便用户管理容器。 最后,生成相关问题时要覆盖安装、配置、管理等方面,确保用户能进一步探索。要确保所有步骤清晰,命令准确,避免用户因为版本问题或命令错误而卡住。</think>### 通过 Docker 运行 Milvus 的方法与配置教程 #### 1. 环境准备 - **安装 Docker**:确保系统中已安装 Docker Engine(版本≥20.10)[^1] - **安装 Docker Compose**:推荐使用 V2 版本(通过命令 `docker compose version` 验证)[^2] - **系统资源**:建议分配至少 8GB 内存和 20GB 存储空间 #### 2. 配置文件下载 ```bash # 下载 Milvus 单机版配置文件 wget https://github.com/milvus-io/milvus/releases/download/v2.3.0/milvus-standalone-docker-compose.yml -O docker-compose.yml ``` #### 3. 启动服务 ```bash # 对于 Docker Compose V1 docker-compose -f docker-compose.yml up -d # 对于 Docker Compose V2 docker compose -f docker-compose.yml up -d ``` 启动后会创建四个容器: - `milvus-etcd`(元数据存储) - `milvus-minio`(对象存储) - `milvus-standalone`(主服务) - `attu`(Web 管理界面)[^2] #### 4. 验证运行状态 ```bash docker-compose -f docker-compose.yml ps ``` 正常输出应显示所有容器状态为 `Up`[^1] #### 5. 使用 Attu 管理界面 访问 `http://localhost:8000`,默认账号: - 用户名:`root` - 密码:`Milvus` #### 6. 配置调整(可选) 修改 `docker-compose.yml` 文件可调整: ```yaml services: milvus-standalone: environment: - QUERY_NODE_SEGMENT_MAX_SIZE=2048 # 调整内存限制 ports: - "19530:19530" # 端口映射 ``` #### 常见问题解决 - **端口冲突**:修改 `ports` 参数后重新部署 - **资源不足**:调整 `resources.limits` 配置项 - **数据持久化**:挂载宿主机目录到容器中的 `/var/lib/milvus` #### 停止服务 ```bash docker-compose -f docker-compose.yml down ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

童龙辉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值