DeepSeek R1本地Linux服务器Docker部署<实现网页访问/本地终端访问>完整教程

在这里插入图片描述

本文为DeepSeek R1本地Docker部署<实现网页访问/本地终端访问>教程,应该是优快云中r1本地化部署最为全面的博客,欢迎读者评论交流。

DeepSeek是一家专注通用人工智能(AGI)的中国科技公司,主攻大模型研发与应用,经营范围包括技术服务、技术开发、软件开发等。DeepSeek-R1是其开源的推理模型,擅长处理复杂任务且可免费使用。支持联网搜索和深度思考模式。

一、项目背景介绍

先来介绍下项目背景吧,目前有一台空闲的3070服务器,deepseek r1的开源可以让我们有机会自己尝试模型的部署,同时有很多开源适配项目帮我们进行了模型蒸馏,确保我们的低端服务器也可以实现r1模型推理,在此,博主从完全小白的视角进行完整的流程配置(很完整,甚至从硬盘挂载开始…),以下是项目所需工具介绍。

二、所需工具介绍

1.硬件工具

3070服务器,原生安装ubuntu18.04,一块2t机械硬盘
由于该项目所需的存储空间较大,因此选择新装一块2t机械硬盘,将项目中的所有内容存在在该硬盘上。

2.软件工具

Ollama

介绍一下Ollama: Ollama 是一款开源工具,专注于在本地计算机上高效部署和运行大型语言模型(LLM)。它通过简化模型加载、资源优化和交互接口设计,使用户无需依赖云端服务即可体验AI能力,尤其适合对隐私、成本和定制化有需求的场景。
Ollama的核心功能与特点:

  1. 本地化运行
    • 支持主流开源模型(如 Llama 2、Mistral、CodeLlama 等),用户可直接下载并运行模型文件,避免数据上传至第三方服务器。
    通过量化技术压缩模型体积,降低对硬件(如 GPU 显存)的要求,普通消费级显卡即可运行 7B/13B 参数规模的模型。
  2. 跨平台与轻量化
    • 兼容 macOS、Linux 和 Windows,提供命令行与 API 接口,方便开发者集成到本地应用中。
    • 内存占用低,支持多线程优化,可根据硬件自动调整计算资源。
  3. 生态扩展性
    • 开放模型库(如官方托管的 ollama/models),支持用户自定义微调模型或导入 Hugging Face 等平台的模型。
    • 社区提供丰富的插件(如 VS Code 扩展、Chatbot 界面),增强交互体验。

Docker

Docker大家应该都比较熟悉,如果此前没有接触过Docker,后面的内容就不用看了,先把这两篇博客看完再看后续内容:在 Ubuntu 中安装 DockerLinux系统Ubuntu配置Docker详细流程

Docker Desktop

Docker Desktop 是 Docker 公司为桌面操作系统(包括 Windows 和 macOS)开发的一款应用程序,它提供了一种简单的方式在本地计算机上运行 Docker 容器。
为什么我们要使用Docker Desktop?其实本可以不使用Docker Desktop的,但无奈在linux服务器上执行命令docker pull ollama/ollama时会卡住,因此只能曲线救国,在win下先下载好ollama的官方docker镜像,再拷贝至linux服务器上运行。

SSH

SSH没接触过的也不用往下看了,先看懂这篇博客再继续:ssh详解–让你彻底学会ssh

Miniconda3(py3.11)

需要Miniconda3是因为我们为了实现网页端登录访问DeepSeek R1时,需要使用openwebui服务,需要为该服务创建一个conda环境,因此也需要在Ollama官方镜像容器中安装Miniconda3。但注意,openwebui需要python3.11,这里推荐大家用清华开源的Miniconda3镜像,选择适配自己系统的python3.11版本。

三、完整部署流程

1. 服务器硬盘挂载

先从服务器的硬盘挂载开始,

2. 在win环境中下载Docker Desktop

我们本可以在linux服务器上直接下载ollama官方镜像的,但使用down不下来,因此只好现在win中下载了。先下载Docker Desktop,教程如下:【Docker基础】Docker Desktop入门使用指南
简单来说,登录Docker官网:https://www.docker.com/。点击此处下载完安装即可,不用执行其他多余步骤
在这里插入图片描述

3. 在Docker Desktop中导出ollama官方docker镜像至win本地

在win下打开Docker Desktop,登录账号。
找到Docker Hub:
在这里插入图片描述
在右边搜索:ollama,点击“Search”,结果如下所示:
在这里插入图片描述
点击第一个ollama/ollama,点击右上角"Tag":
在这里插入图片描述
选择自己需要的版本,我在这里选了两次,分别是latest和0.5.11:
在这里插入图片描述
每次选完点击"Pull",如下所示,开始下载:
在这里插入图片描述
下载完后,点击“Images”,可以看到自己下载的所有镜像:
在这里插入图片描述

下面可参考此文:dockerdesktop 导出镜像,导入镜像
,导出镜像。
简单来说:在win下打开Windows PowerSehll,在终端输入:

docker save -o ollama0.5.11.tar ollama/ollama:0.5.11

如下所示:
在这里插入图片描述
执行完毕后,可以在C盘/用户/your name/ 下看到保存的ollama官方镜像包,3.04GB大小:
在这里插入图片描述

4. 复制ollama镜像至服务器

把刚才在C盘的ollama0.5.11.tar传到服务器上。
高阶方法是采用SSH命令,先在服务器上输入ifconfig查询服务器IP,然后输入命令:

scp /本地路径/....tar.gz 服务器用户名@服务器IP:~/目标路径/

如果实在不会的话,可用低阶方法,拿U盘拷吧

5. 服务器上加载docker镜像并运行容器

在进行这一步的时候,需要先在服务器上安装好Docker,安装方法上文已给链接。安装好Docker后,加载镜像:

sudo docker load -i ollama0.5.11.tar

此时在服务器终端上执行:docker images,查看当前系统中所有的镜像,此时你应该只能看到我框出的ollama/ollama:0.5.11镜像,我其余的镜像都是在此镜像的基础上后续保存的。
在这里插入图片描述
在服务器上输入nvidia-smi,查看你的显卡device:
在这里插入图片描述
我的device是0,这点要记住!
然后在终端输入:

docker run -d --gpus '"device=0"' -v /ollama:/ollama -p 8080:8080 --name ollama ollama/ollama:0.5.11

在这里插入图片描述
然后在终端输入命令进入容器:

docker exec -it ollama bash

**此处有一点需要注意:**就是命令中的-p 8080:8080 ,是指宿主机的端口和docker容器内的端口的对应关系:-p 是 --publish 的缩写,用于进行端口映射。冒号前的 8080 是宿主机的端口,冒号后的 8080 是容器内的端口。这意味着将容器内的 8080 端口映射到宿主机的 8080 端口,外部客户端可以通过访问宿主机的 8080 端口来与容器内监听 8080 端口的服务进行通信。
• --name ollama:为容器指定一个自定义的名称 ollama,方便后续对该容器进行管理,例如停止、重启、查看日志等操作时可以直接使用这个名称。
• ollama/ollama:0.5.11:明确要使用的 Docker 镜像及其版本。ollama/ollama 是镜像的名称,0.5.11 是镜像的标签,用于指定特定版本的镜像。

6. 在Docker容器中配置miniconda3

在进入Docker容器后,安装miniconda3,可以安装我之前分享的教程进行安装,在终端输入:

bash Miniconda3-py311_23.5.1-0-Linux-x86_64.sh

完成miniconda的安装,按流程一步步安装完后,需要添加环境变量:

echo 'export PATH="/root/miniconda3/bin:$PATH"' >> ~/.bashrc

使其在当前终端立即生效:

source ~/.bashrc

7. 配置openwebui的conda环境

完成6后,紧接进入base环境:

source activate

然后创建自己的conda环境:

conda create -n openwebui python=3.11

激活环境:

conda activate openwebui

在环境中安装openwebui所需的包:

pip install open-webui

安装内容很多,大概10m-1h,视网速快慢。

8. 在容器中拉取 r1模型

openwebui的环境配置完成后,现在终端输入ollama,看是否正常:因为我们是直接用ollama的官方Docker镜像跑的,所以应该
如果是这样,则为正常:
在这里插入图片描述
然后输入

ollama pull deepseek-r1:7b

如下所示:

在这里插入图片描述
可以看到,已经在docker内,通过ollama下载deepseek r1 7b的模型了
当然,如果你的显卡是4090 or others~ ,你也可以下载更大的模型,在ollama官网中,提供了多种deepseek及其他种类模型选择:
在这里插入图片描述
点进去后,可以看到其实有很多deepseek模型可供选择:
在这里插入图片描述
此处我通过上述命令行选择的是7b大小,即70亿参数的R1模型。

9. 运行open-webui serve

下载完成后,在docker内执行命令:ollama list,看是否已经有了模型,如下所示为正常:
在这里插入图片描述
此时,你可以在容器内激活openwebui环境后执行命令:

open-webui serve

结果如下所示:
在这里插入图片描述
可以看到,我们已经在docker内的8080端口成功部署了openwebui服务。

10. 网页端Deepseek R1的访问登录、注册、用户及模型权限管理 / 服务端终端使用

此时,在局域网或anything else 浏览器中输入服务器IP:8080,如192.23.22.123:8080。页面打开后,会显示一个注册页面,自己简单填一下即可:
在这里插入图片描述

点击“登录”后进入服务页面:
在这里插入图片描述
如果你刚才在ollama pull deepseek-r1:7b完成后又pull其他大小的模型,比如ollama pull deepseek-r1:14b,那此时此处可以选择7b或14b的模型,此处我只有一个7b模型:
在这里插入图片描述
选好模型后,测试下模型效果,模型大小只有7b,说的也还算是人话**(1.5b基本不说人话)**:在这里插入图片描述
在提问前,我们可以先在服务器终端输入:

watch -n 1 nvidia-smi

然后提问时,可以看到服务器后台的运行情况:
在这里插入图片描述
可以看到,服务器总共8G显存用了6G,负载也拉到79%。
但需要注意的是,当多个用户同时访问时,负载并不会线性增加,只会稍许增加,然后推理速度稍慢。

当打开网页但不提问时,负载很低,但是模型初始化后的显存还是一直占着的:
在这里插入图片描述
此时左下角点击菜单“管理员面板”:
在这里插入图片描述
打开后可以看到所有用户:
在这里插入图片描述
可以点击右上角“+”,添加成员
在这里插入图片描述
在这里插入图片描述

或者通过CSV批量添加成员
在这里插入图片描述
CSV批量添加模版如下所示:
在这里插入图片描述
添加完用户后,点击“权限组”,可自行添加用户到某个组:
在这里插入图片描述
同时可以设置组的权限:
在这里插入图片描述
**最后,还有一点极为重要的是:**当你自己为管理员,而其他人为用户时,你需要将你的模型变成public,不然其他用户通过IP:端口登录页面后,是看不到也没法使用模型进行对话的。需要进行如下设置:
在这里插入图片描述
在这里插入图片描述
或者添加权限组为,并设为“写作”。
否则,如下所示,无法进行对话:
在这里插入图片描述
最后,大家可以将该容器保存为一个新的镜像,docker commit xxx,自己搜下命令,镜像比较大, 一般几十个G

再提一句,如果是要在服务器的终端中直接和deepseek r1互动,可以在pull模型后,直接运行模型:

ollama run deepseek-r1:7b

在这里插入图片描述
直接进行提问:夏天为什么这么热?
在这里插入图片描述
over

以上即为此次DeepSeek R1本地Linux服务器的Docker部署,欢迎交流。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值