云计算百科
云计算领域专业知识百科平台

Ubuntu服务器系统Docker部署Ollama+AnythingLLM实现DeepSeek本地部署

文章目录

  • 拉取Ollama镜像
  • 运行Ollama容器并拉取模型
    • 启动Ollama容器
    • Ollama Dockerfile部分说明
    • 拉取模型
  • AnythingLLM容器部署
    • anythingllm镜像拉取
    • anythingllm容器运行
    • 使用anythingLLM
  • 服务器配置 CPU:Intel® Xeon® Gold 6138 (20核心 40线程) 内存:32GB 磁盘:4TB GPU:NVIDIA GeForce RTX 3090 24G显存

cpu信息 内存信息 磁盘信息 GPU信息

  • 操作系统:Ubuntu server 22.04
  • Docker版本:20.10.22 操作系统信息 docker信息 操作系统、docker、gpu驱动如何安装,这些都可以在网上搜到相关信息,本文就不再描述了。

拉取Ollama镜像

  • Docker镜像仓库官方地址:docker官方镜像仓库地址 docker镜像 在“Explore”中找到“Gen AI”,然后往下翻,找到“Ollama”。 Ollama镜像
  • 拉取指令

docker pull ollama/ollama

Ollama镜像 这个镜像比较大,而且国内拉取镜像本来也比较慢。之前还有阿里云,道客云等平台的镜像加速站,现在很多都不能用了,这里列几个可用的加速站点,读者可以配置上。

vim /etc/docker/daemon.json
{
"data-root": "/var/lib/docker",
"log-driver": "json-file",
"log-level": "warn",
"log-opts": {
"max-file": "3",
"max-size": "10m"
},
# 主要是如下内容,其余部分请根据自己实际环境配置。
"registry-mirrors": [
"https://proxy.1panel.live",
"https://docker.1panel.top",
"https://docker.m.daocloud.io",
"https://docker.1ms.run",
"https://docker.ketches.cn"
],
"runtimes": {
"nvidia": {
"args": [],
"path": "nvidia-container-runtime"
}
}
}

运行Ollama容器并拉取模型

根据镜像使用方式可知,运行ollama容器后,可在容器内拉取模型文件。 Ollama容器使用说明

启动Ollama容器

docker run -d –gpus=all -v ollama:/root/.ollama -p 11434:11434 –name ollama ollama/ollama

上述指令是官方给的参考指令,主要是-v参数,如果按照上述指令,-v后面直接根“ollama”,会在docker的存储卷中创建一个本地的ollama存储卷,如下图。不建议这种方式,因为这种方式,最后拉取的模型文件不好找(在这个目录中【/var/lib/docker/volumes】),还是建议采用自定义的绝对路径,方便找到模型文件保存的位置和迁移。 ollama存储卷 可以参考如下指令:

docker run -d –name ollama –gpus=all -v /home/rarelong/project/ollama/_data:/root/.ollama -p 11434:11434 ollama/ollama

其中,/home/rarelong/project/ollama/_data是我复制的/var/lib/docker/volumes/ollama/_data/这个目录的内容,说明ollama的模型文件是可以复制迁移的,那么就可以将ollama的镜像和这个目录全部打包,拷贝至没有互联网的环境中直接运行。

Ollama Dockerfile部分说明

从ollama的镜像dockerfile内容来看,官方指定了一个ENTRYPOINT [“/bin/ollama”],CMD [“server”],这导致我们只能先将ollama镜像启动起来,当作服务运行,然后用“docker exec -it”指令拉取模型文件或者运行模型。如果直接在启动的时候加上相关参数,会启动失败。如下图: 启动失败 启动失败

  • 官方dockerfile部分内容 Ollama镜像dockerfile部分内容 正常启动画面如下: 正确启动容器

说明:其中docker启动的相关参数本文不做说明,比如【-itd,–rm,-p,-v】等,这些需要读者自行学习。本文并非基础教学内容,感谢理解。

拉取模型

Ollama官方地址:Ollama官方地址 模型下载 前面几个就是deepseek-r1模型的链接,还有很多别的模型,可以根据需求下载。 deepseek-r1模型下载 点击进去之后,就有选择版本和对应的下载指令。 下载模型文件 我这里已经下载了几个模型文件,32b,7b,8b这几个参数的文件。 已下载模型文件 比如这里我们再下载一个1.5b参数的模型。

  • 如果采用的参数是“run”,当本地没有这个模型文件时,会自动从ollama仓库中去拉取这个文件,这点根docker运行容器类似。
  • 只是单独拉取文件的话,应该是“pull”参数。这个根docker也是类似的。 ollama参数

docker exec -it ollama ollama run deepseek-r1:1.5b

deepseek1.5b参数模型 启动1.5b参数模型 当前已有模型文件

AnythingLLM容器部署

AnythingLLM官方地址:AnythingLLM官方地址

AnythingLLM 是一款专为企业或个人定制的 私有化大语言模型(LLM)应用平台,核心目标是为用户提供安全、可控且高度定制化的 AI 解决方案。 在官网上,一直往下翻,直到翻到“Run via Docker”时,点击,进入anythingllm的docker镜像仓库。 docker部署anythinllmm

anythingllm镜像拉取

拉取镜像指令:

docker pull mintplexlabs/anythingllm

在概述文件中,有该镜像的相关说明,概述文件的最后有anythingllm容器的运行方式。 anythingLLM容器运行指南 anythingllm镜像文件

anythingllm容器运行

运行指南:anythingllm容器运行指南 anythingLLM文档

anythingllm容器运行指南 官方指令如下:

export STORAGE_LOCATION=$HOME/anythingllm && \\
mkdir -p $STORAGE_LOCATION && \\
touch "$STORAGE_LOCATION/.env" && \\
docker run -d -p 3001:3001 \\
–cap-add SYS_ADMIN \\
-v ${STORAGE_LOCATION}:/app/server/storage \\
-v ${STORAGE_LOCATION}/.env:/app/server/.env \\
-e STORAGE_DIR="/app/server/storage" \\
mintplexlabs/anythingllm

简单解释一下上述指令中的一些参数:

  • export STORAGE_LOCATION= $ HOME/anythingllm:export定义当前bash的临时变量,变量名称【STORAGE_LOCATION】,变量值【 $ HOME/anythingllm】,其中$HOME是系统环境变量,值为当前用户的家目录。
  • &&:表示执行完上一条指令后,继续执行下一条指令,如果上一条指令执行失败,后面的指令不再执行。
  • mkdir:创建文件夹;-p:递归创建文件夹。
  • touch:创建文件;.env:前面带点的文件为隐藏文件。这里应该是一个保存环境变量配置的文件。
  • docker run:运行容器。
  • cap-add SYS_ADMIN:给容器赋予比较宽泛的管理权限。注意【–cap-add SYS_ADMIN】 如果您想抓取网页,这是必需的命令。我们使用 PuppeeteerJS 来抓取网站链接,而 –cap-add SYS_ADMIN 允许我们在所有运行时中使用沙盒 Chromium 以实现最佳安全实践。

我这里之前运行过这个容器,所以前面的那些环境变量就不用设置了。如果你需要自定义这些换变量的内容,如数据存储目录(~/anythingllm目录),环境变量文件(.env),可以先行创建,在通过-v参数,以绝对路径方式挂载进容器。

本地anythingllm目录

  • 自定义运行指令:

docker run -d -p 3001:3001 –cap-add SYS_ADMIN -v /home/rarelong/project/anythingllm/:/app/server/storage -v /home/rarelong/project/anythingllm/.env:/app/server/.env -e STORAGE_DIR="/app/server/storage" mintplexlabs/anythingllm

通过这种方式,也可以把~/anythingllm目录和anythingllm的镜像打包迁移至别的安装有docker的服务器或pc上运行。

使用anythingLLM

  • 访问 在浏览器输入服务器IP+端口,即可访问。 访问anythingllm
  • 选择模型 这个需要ollama已经下载了相关模型,才能选择对应的模型文件。 模型选择 给它上传一个文件,然后问它一个问题。

上传文档

问题 回答 可以看到32b参数模型运行需要的显存空间是20G左右。 模型运行 再次提问 看来它还是没认到这个图片的内容。 pdf的图片内容

  • 再次提问 第二次提问

再次提问

  • 过一会,gpu中的模型文件就没有了。 模型退出了gpu

由此可见,anythingLLM对于pdf这种文档的处理还有一定的困难,比如pdf里面的图片中的内容,就没解析到。不过万能的网友已经有了解决方案,读者可以搜索学习。 主要就是要让大模型认识你给的内容。

赞(0)
未经允许不得转载:网硕互联帮助中心 » Ubuntu服务器系统Docker部署Ollama+AnythingLLM实现DeepSeek本地部署
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!