当前位置: 首页 > news >正文

使用docker搭建faiss向量数据库

        为了不污染服务器环境,保证程序运行时有更好的隔离性,领导要求基于容器运行程序。

一、准备工作

1、创建文件夹faiss

该文件夹有用于存放faiss相关的文件及脚本

mkdir ~/faiss

2、创建data文件夹

 cd ~/faiss

mkdir data

 这个文件夹用于volume,映射容器内部文件夹

二、编写Dockerfile

# 使用 centos:7.9 作为基础镜像
FROM centos:7# 安装必要的系统软件包
RUN yum install -y wget bzip2 vim# 下载并安装 Miniconda
RUN wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh
RUN bash miniconda.sh -b -p /opt/conda
RUN rm miniconda.sh
ENV PATH="/opt/conda/bin:${PATH}"# 创建 conda 环境并安装 faiss-gpu 和 pandas
RUN conda create -y -n faiss_env python=3.8 && echo "conda activate faiss_env" >> ~/.bashrc #RUN conda create -n faiss_env python=3.8
#RUN conda init bash
#RUN conda activate faiss_env && \
#    pip3 install faiss-gpu -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
#RUN pip3 install pandas -i http://pypi.douban.com/simple --trusted-host pypi.douban.com# 设置工作目录
WORKDIR /app

主要是创建了一个基于centos7的镜像,然后按照miniconda、faiss-gpu 和 pandas,但是奇怪的是在这里不管是执行pip install 还是conda install,都执行不成功,但是把这个放到容器中执行就可以,咱也不知道为啥。

三、构建镜像

创建一个名为faiss-gpu的镜像,版本为v1;为了方便记录,创建一个构建的脚本build.sh 

#!/bin/bash
docker build -t faiss-gpu:v1 .

执行即可:

 sh build.sh

 查看是否成功:

docker images |grep faiss

四、运行容器

 创建一个run.sh的文件,内容如下:

docker run -it --name=ndf-faiss -v /home/ndf/faiss/data:/app/data faiss-gpu:v1 /bin/bash

--name:指定了一个名称为ndf-faiss的容器;
-v:指定一个卷(volume),将宿主机的/home/ndf/faiss/data目录映射到容器的/app/data目录;

命令最后是指定了使用的镜像及版本;

OK,可以开始表演了!

http://www.lryc.cn/news/322480.html

相关文章:

  • 安卓面试题多线程 121-125
  • 什么是 HTTPS?它是如何解决安全性问题的?
  • C++入门(下)
  • 2024-03-20 作业
  • 【机器学习】深入解析线性回归模型
  • 新一代云原生数据库OLAP
  • JavaEE--小Demo
  • 一代大神跌落神坛——Java炸了!
  • 面试算法-64-零钱兑换
  • Java复习06 Spring 代码概念
  • 【研究僧总结】回顾第1095个创作日
  • QT(6.5) cmake构建C++编程,调用python
  • Java开发从入门到精通(九):Java的面向对象OOP:成员变量、成员方法、类变量、类方法、代码块、单例设计模式
  • 通过 Socket 手动实现 HTTP 协议
  • 探索数据结构:双向链表的灵活优势
  • 记录一次服务器内存使用率过高达到90%告警问题排查。
  • 基于react native的自定义轮播图
  • Jetson入坑记实
  • 算法系列--递归
  • 【JS】替换文本为emjio表情
  • Solr完结版
  • 外包干了5天,技术退步明显。。。。
  • Cronos zkEVM 基于 Covalent Network(CQT)数据可用性 API,推动其 Layer2 DeFi 生态更好地发展
  • 基于SpringBoot的高校办公室行政事务管理系统
  • Linux系统及操作 (04)
  • 粒子群算法 - 目标函数最优解计算
  • 关于MySQL数据库的学习3
  • 笔试题——得物春招实习
  • 动手做简易版俄罗斯方块
  • 【极简无废话】open3d可视化torch、numpy点云