ToB企服应用市场:ToB评测及商务社交产业平台

标题: 快速上手:Milvus与Attu在Docker环境下的无缝集成指南 [打印本页]

作者: 自由的羽毛    时间: 昨天 17:13
标题: 快速上手:Milvus与Attu在Docker环境下的无缝集成指南
运行mivlus和它的图形化界面都是在docker容器中运行的,那么首先就是要安装docker,这边以windows用户为例。
安装Docker

启用WSL

安装Ubuntu

在微软商店里面搜索ubuntu然后任意安装一个LTS版本即可(LTS表示恒久支持)。
下载完成后按提示安装应该会要输入用户名暗码什么的(自行设置)。

然后在菜单栏搜索ubuntu并打开。

然后就在这个下令行中执行下面的下令。

首先执行以下下令卸载所有辩论的软件包。(sudo使用超级管理员权限会让你提示你输入暗码,你输入的暗码在终端中是不会表现的)。
  1. for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
复制代码
然后运行以下下令设置Docker官方堆栈并安装相关依赖项。
  1. # 添加Docker的官方GPG密钥:
  2. sudo apt-get update
  3. sudo apt-get install ca-certificates curl
  4. sudo install -m 0755 -d /etc/apt/keyrings
  5. sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
  6. sudo chmod a+r /etc/apt/keyrings/docker.asc
  7. # 将存储库添加到apt源:
  8. echo \
  9.   "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  10.   $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
  11.   sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  12. sudo apt-get update
复制代码
然后运行以下下令安装docker。
  1. sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
复制代码
然后在终端中运行
  1. docker --help
复制代码
若出现以下内容则安装成功。

安装mivlus服务端

首先运行以下下令下载安装脚本。
  1. curl -sfL https://raw.githubusercontent.com/milvus-io/milvus/master/scripts/standalone_embed.sh -o standalone_embed.sh
复制代码
然后运行以下下令运行脚本。
  1. bash standalone_embed.sh start
复制代码
启动后再运行。
  1. sudo docker ps
复制代码
可以看到一个名为milvus-standalone的容器已经开始运行。

ok我们删了这个容器。
运行以下下令逼迫删除。
  1. sudo docker rm -f milvus-standalone
复制代码

接下来开始安装milvus用户图形界面attu。
安装mivlus用户图形界面

attu的github地址是https://github.com/zilliztech/attu。
首先拉取项目

执行git clone https://github.com/zilliztech/attu
然后执行cd attu进入到项目里面。
构建镜像

可以直接执行sudo docker build -t attu:2.4.12 .
下令构建镜像。
但由于里面的nodejs的依赖安装使用的是国外源,所以十分的慢。因此我改了里面的Dockerfile文件,把源换成了国内的镜像源。
更改的Dockerfile文件如下
  1. # => Building container
  2. FROM node:22-slim AS builder
  3. WORKDIR /app
  4. COPY . .
  5. ARG TARGETPLATFORM
  6. ARG BUILDPLATFORM
  7. RUN echo "I am running on $BUILDPLATFORM, building for $TARGETPLATFORM"
  8. # => Building Client
  9. WORKDIR /app/client
  10. RUN npm config set registry https://registry.npm.taobao.org && \
  11.   yarn install --network-timeout 1000000
  12. RUN yarn build
  13. # => Building Server
  14. WORKDIR /app/server
  15. RUN npm config set registry https://registry.npm.taobao.org && \
  16.   yarn install --network-timeout 1000000
  17. ENV NODE_ENV=production \
  18.     PORT=80
  19. RUN yarn build
  20. # => Copy to Final container
  21. FROM node:22-slim
  22. WORKDIR /app
  23. COPY --from=builder /app/server/dist /app/dist
  24. COPY --from=builder /app/client/build /app/build
  25. COPY --from=builder /app/server/package.json /app/package.json
  26. COPY --from=builder /app/server/yarn.lock /app/yarn.lock
  27. # => Reinstall production dependencies and clean cache
  28. RUN npm config set registry https://registry.npm.taobao.org && \
  29.   yarn install --production && yarn cache clean
  30. # Make our shell script executable
  31. RUN chmod +x /app/build/env.sh
  32. # Make all files accessible such that the image supports arbitrary user ids
  33. RUN chgrp -R 0 /app && \
  34.   chmod -R g=u /app
  35. EXPOSE 3000
  36. CMD ["/bin/bash", "-c", "/app/build/env.sh && yarn start:prod"]
复制代码
将这上面的内容拷贝替换原来的Dockerfile文件。
然后再运行。
  1. sudo docker build -t attu:2.4.12 .
复制代码

我这边用时176.5s(没开科学上网)。
然后执行
  1. sudo docker iamges
复制代码

可以看到已经构建了这个镜像。
接下来开始启动容器
在根目录下创建一个milvus目录并进入
  1. cd ~
  2. mkdir mivlus
  3. cd milvus
  4. sudo docker iamges
复制代码

将以下下内容保存为compose.yaml文件
一定要留意image字段和你那里是否能对上
  1. version: '3.8'
  2. name: MilvusServer
  3. services:
  4.   milvus-standalone:
  5.     image: milvusdb/milvus:v2.5.0-beta # 确认镜像标签是否正确
  6.     container_name: milvus-standalone
  7.     security_opt:
  8.       - seccomp:unconfined
  9.     environment:
  10.       - ETCD_USE_EMBED=true
  11.       - ETCD_DATA_DIR=/var/lib/milvus/etcd
  12.       - ETCD_CONFIG_PATH=/milvus/configs/embedEtcd.yaml
  13.       - COMMON_STORAGETYPE=local
  14.     volumes:
  15.       - ./volumes/milvus:/var/lib/milvus
  16.       - ./embedEtcd.yaml:/milvus/configs/embedEtcd.yaml
  17.       - ./user.yaml:/milvus/configs/user.yaml
  18.     ports:
  19.       - "19530:19530"
  20.       - "9091:9091"
  21.       - "2379:2379"
  22.     healthcheck:
  23.       test: ["CMD", "curl", "-f", "http://localhost:9091/healthz"]
  24.       interval: 30s
  25.       start_period: 90s
  26.       timeout: 20s
  27.       retries: 3
  28.     command: ["milvus", "run", "standalone"]
  29.     logging:
  30.       driver: "none"
  31.     networks:
  32.       - milvusserver_default #将其加入自定义的网络
  33.   attu:
  34.     image: attu:2.4.12  # 确认镜像标签是否正确
  35.     container_name: attu
  36.     environment:
  37.       - MILVUS_URL=milvus-standalone:19530  # 使用服务名代替IP地址
  38.     ports:
  39.       - "8000:3000"
  40.     depends_on:
  41.       - milvus-standalone
  42.     networks:
  43.       - milvusserver_default #将其加入自定义的网络
  44. networks:
  45.   milvusserver_default:
  46.     driver: bridge
复制代码
然后运行
  1. sudo docker compose up -d
复制代码

进入浏览器访问localhost:8000

等个10秒钟左右再连接(项目刚开要初始化)。

使用milvus

使用milvus请参考Milvus + RAG:开启智能搜索新时代,重塑AI创造力
Milvus + RAG:开启智能搜索新时代,重塑AI创造力

改为

即可!
结语

欢迎讨论。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4