解决Milvus官网提供的单机版docker容器无法启动,以及其它容器进程与Milvus容器通信实现方案【Milvus】【pymilvus】【Docker】

问题

我的需求是做混合检索单机版可以满足,要走Docker容器部署,还需要和另一个容器中的程序做通信。官方文档提供的Milvus安装启动Milvus方案,见文档:传送门
在这里插入图片描述
我在开始这里就挂了,

bash standalone_embed.sh start

创建的容器无法启动,可能和我的本地docker有关。

预备知识

先了解一个预备知识哈,有没有向我一样是从GitHub上的pymilvus慕名而来的,这个pymilvus的定位是一个SDK(Software Development Kit),是个工具,它需要搭配一个Milvus实例,也就是Milvus服务器,总结,使用过程需要的组合:

  • milvus SDK(本文的pymilvus
  • Milvus服务器(本文的Milvus容器)

另外,Docker容器和宿主机本身在同一个内网中,本身是可以互相通信的,你能在内网中找到两者的ip

方案

我的时空中(2024-04),目前最新版milvus2.4.0

获取pymilvus

pip install pymilvus
pip install pymilvus[model]

第二个指令可选,我需要bge-m3,所以也装了,官方文档有介绍,这里过了哈。

获取milvus 实例

通过docker-compose + xxx.yml文件实现

wget https://github.com/milvus-io/milvus/releases/download/v2.4.0/milvus-standalone-docker-compose.yml -O docker-compose.yml

sudo:docker-compose up -d

小插曲
如果你和我一样,执行docker-compose up -d,报这种错,

试试这样解决:

sudo apt  install docker-compose

在这里插入图片描述

多容器通信

我的场景是,Milvus实例本身独占一个容器containtorA,我的混合检索程序在另一个容器containtorB,检索程序需要向指定端口(默认Port:19530)发送请求,这个请求需要Milvus实例去处理。所以这是个容器通信问题?
是也不是,本质是容器和宿主机通信,具体来说,容器A内的应用程序向宿主机的端口发送请求,而这个端口被容器B监听,间接地完成了容器A、B间的通信。也就是说,容器间的直接通信方案有时候也可以通过间接通信实现。
我这里的间接通信是这样实现的,在pymilvus 相关程序的请求中这样填写(ifconfig一下),

connections.connect("default", host="<宿主机IP地址>", port="19530")

最后结果是有三个容器在运行
在这里插入图片描述
去宿主机上查看Milvus监听状态
在这里插入图片描述

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-28 06:52:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-28 06:52:05       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-28 06:52:05       82 阅读
  4. Python语言-面向对象

    2024-04-28 06:52:05       91 阅读

热门阅读

  1. 基于单片机的配电网故障自适应监控系统设计

    2024-04-28 06:52:05       32 阅读
  2. Redis面试题超详细(2024最新)

    2024-04-28 06:52:05       37 阅读
  3. Ubuntu22.04安装Nvidia 550驱动和CUDA toolkit 12.4.1

    2024-04-28 06:52:05       36 阅读
  4. 练习题(2024/4/27)

    2024-04-28 06:52:05       31 阅读
  5. iptables动作

    2024-04-28 06:52:05       103 阅读
  6. 【Kotlin】select简介

    2024-04-28 06:52:05       35 阅读
  7. 打地鼠游戏(python期中)

    2024-04-28 06:52:05       37 阅读
  8. 常用设计模式简介

    2024-04-28 06:52:05       31 阅读
  9. opencv 采样照片

    2024-04-28 06:52:05       36 阅读
  10. sql server 数据库的学习

    2024-04-28 06:52:05       30 阅读