docker desktop使用ollama在GPU上运行deepseek r1大模型

server/2025/2/2 1:17:03/

一、安装docker

  1. 安装WSL
  2. 打开Hyper V

可以参考:用 Docker 快速安装软件_哔哩哔哩_bilibili

二、拉取ollama镜像

在powershell中运行如下命令,即可拉取最新版本的ollama镜像:

docker pull ollama/ollama

如果需要指定版本,可以用如下命令:

# CPU 或 Nvidia GPU下载ollama 0.3.0
docker pull ollama/ollama:0.3.0
# AMD GPU下载ollama 0.3.0
docker pull ollama/ollama:0.3.0-rocm

 

三:启动ollama容器

方式一:docker desktop界面启动

  • 下载完成后,可以在 Images中找到 Ollama 镜像,点击 run 标识即可运行,注意运行前在弹出的可选设置里面,选定一个端口号(如8089)。

方式二:命令行启动

  • CPU 版本:
    docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
  • GPU版本:
    docker run -d --gpus=all -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama

注:也可以通过docker-compose.yaml配置文件拉取ollama,参考Docker部署全攻略:Ollama安装、本地大模型配置与One-API接入_ollama docker部署-CSDN博客

关于ollama使用GPU还可以参考:在Linux上如何让ollama在GPU上运行模型_ollama使用gpu-CSDN博客

Ollama 现已推出官方 Docker 镜像 · Ollama 博客 - Ollama 框架

四、在ollama容器中拉取deepseek r1模型

我拉取的是14B,大家可以根据自己电脑配置选择不同版本大模型

在ollama容器中执行如下命令,等待下载好deepseek-r1完成即可:

ollama run deepseek-r1:14b

参考:deekseek-r1本地部署指南极简版-CSDN博客

 如果大家还想使用open web ui可以参考:deepseek-r1落地指南(搭建web-ui | 搭建本地代码编辑器)-CSDN博客

五、(可选)运行deepseek并调用GPU

如果在“三:启动ollama容器:”中启用的是CPU版本的容器,则deepseek无法调用GPU,如果还想调用GPU,应该如下操作:

1.验证docker可以调用GPU命令如下:

docker run --gpus all ubuntu nvidia-smi

2.制作镜像保存在本地,命令如下:

docker commit 5ae3d25d6f5d odeepseek14b

3.运行镜像,生成容器,命令如下(命令中要包含--gpus=all才能调用GPU):

docker run -d --gpus=all --hostname=5ae3d25d6f5d --env=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin --env=OLLAMA_HOST=0.0.0.0 --env=LD_LIBRARY_PATH=/usr/local/nvidia/lib:/usr/local/nvidia/lib64 --env=NVIDIA_DRIVER_CAPABILITIES=compute,utility --env=NVIDIA_VISIBLE_DEVICES=all --network=bridge -p 8089:11434 --restart=no --label='org.opencontainers.image.ref.name=ubuntu' --label='org.opencontainers.image.version=22.04' --runtime=runc -d odeepseek14b

注意:调用GPU时,如果加上--gpus=all,则容器inspect中会显示如下:

		"DeviceRequests": [{"Driver": "","Count": -1,"DeviceIDs": null,"Capabilities": [["gpu"]],"Options": {}}],

如果没有加 --gpus=all,会显示:

"DeviceRequests": null,

则无法调用GPU

4.验证容器中是否调用GPU成功,命令如下:

nvidia-smi


http://www.ppmy.cn/server/164215.html

相关文章

【2024年华为OD机试】 (C卷,200分)- 矩阵匹配(JavaScriptJava PythonC/C++)

一、问题描述 问题描述 给定一个大小为 ( N \times M )(( N \leq M ))的矩阵,从中选出 ( N ) 个数,要求任意两个数字不能在同一行或同一列。求选出来的 ( N ) 个数中第 ( K ) 大的数字的最小值。 输入描述 输入矩阵要求:( 1 \leq K \leq N \leq M \leq 150 )输入格式:…

CAP 定理的 P 是什么

分布式系统 CAP 定理 P 代表什么含义 作者之前在看 CAP 定理时抱有很大的疑惑,CAP 定理的定义是指在分布式系统中三者只能满足其二,也就是存在分布式 CA 系统的。作者在网络上查阅了很多关于 CAP 文章,虽然这些文章对于 P 的解释五花八门&am…

基础项目实战——学生管理系统(c++)

目录 前言一、功能菜单界面二、类与结构体的实现三、录入学生信息四、删除学生信息五、更改学生信息六、查找学生信息七、统计学生人数八、保存学生信息九、读取学生信息十、打印所有学生信息十一、退出系统十二、文件拆分结语 前言 这一期我们来一起学习我们在大学做过的课程…

【算法】经典博弈论问题——斐波那契博弈 + Zeckendorf 定理 python

目录 斐波那契博弈(Fibonacci Nim)齐肯多夫(Zeckendorf)定理示例分析实战演练 斐波那契博弈(Fibonacci Nim) 先说结论:当初始石子数目 n 是斐波那契数时,先手必败;否则&a…

[EAI-029] RoboVLMs,基于VLM构建VLA模型的消融研究

Paper Card 论文标题:Towards Generalist Robot Policies: What Matters in Building Vision-Language-Action Models 论文作者:Xinghang Li, Peiyan Li, Minghuan Liu, Dong Wang, Jirong Liu, Bingyi Kang, Xiao Ma, Tao Kong, Hanbo Zhang, Huaping L…

中间件安全

一.中间件概述 1.中间件定义 介绍:中间件(Middleware)作为一种软件组件,在不同系统、应用程序或服务间扮演着数据与消息传递的关键角色。它常处于应用程序和操作系统之间,就像一座桥梁,负责不同应用程序间…

Learning Vue 读书笔记 Chapter 3

3.1 Vue 单文件组件结构&#xff08;SFC&#xff09; 3.1.1 结构 <template> <h2 class"heading">I am a a Vue component</h2> </template> <script lang"ts"> export default { name: MyFistComponent, }; </scrip…

vue3中el-input无法获得焦点的问题

文章目录 现象两次nextTick()加setTimeout()解决结论 现象 el-input被外层div包裹了&#xff0c;设置autofocus不起作用&#xff1a; <el-dialog v-model"visible" :title"title" :append-to-bodytrue width"50%"><el-form v-model&q…