使用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,可以开始表演了!

相关推荐
Mr_Chenph8 分钟前
备份Docker
运维·docker·容器
春日见25 分钟前
端到端自动驾驶技术路线(E2E)
人工智能·机器学习·docker·架构·机器人·自动驾驶·汽车
IT界的老黄牛1 小时前
RocketMQ 5.x 集群部署实战:3 台机器搞定 2 主 2 从,Docker Host 模式一把梭
docker·容器·rocketmq
春日见1 小时前
UniAD的逻辑,与传统自动驾驶的差异
人工智能·windows·git·机器学习·docker·容器·自动驾驶
乐观的Terry1 小时前
Docker 部署 RocketMQ 5.1.0 踩坑实录:从超时到 Console 连不上的完整解决之路
docker·容器·rocketmq
道清茗2 小时前
【Kubernetes知识点问答题】常规维护管理操作 / ETCD 备份与恢复
docker·kubernetes·etcd
面对疾风叭!哈撒给2 小时前
Linux之docker-compose使用(redis、nginx、tdengine、java应用)
linux·redis·docker
一殊酒3 小时前
【Docker】实战用例:前后端分离项目多容器Docker化设计
运维·docker·容器
邓草3 小时前
Ubuntu修改docker数据目录的方法
ubuntu·docker·eureka
Anthony_CH3 小时前
window系统无虚拟化安装Docker的方式
docker·容器·eureka