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

一、安装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
相关推荐
java_logo1 小时前
Apache Doris Docker 部署指南:实时分析数据库实战
数据库·docker·apache·doris·apache doris·轩辕镜像·docker部署doris
码农学院2 小时前
基于运维监控体系的网络品牌推广方案:从架构设计到技术实现
运维·网络
大耳朵-小飞象11 小时前
电力安全运维的智能密码:BACS如何破解设备全生命周期管理难题,让电网安全“看得见、管得住”?
运维·安全·智慧城市·能耗系统·楼宇智控·未来生活
极客侃科技11 小时前
制造企业 MES/APS 选型:SAP PP/DS 集成、ERP-MES 边界划分与一体化架构要点
运维·架构·制造
生活爱好者!14 小时前
我把NAS当作下载机,docker一键部署qb
运维·docker·容器
java_logo15 小时前
Docker Compose 部署 ClickHouse:快速搭建高性能列式数据库
数据库·clickhouse·docker·列式数据库·轩辕镜像·高性能数据库·clickhouse部署教程
MC皮蛋侠客15 小时前
uv 系列(七):CI/CD、Docker 与私有索引——生产级交付
python·ci/cd·docker·uv
尽兴-16 小时前
企业业务系统架构选型与渐进式演进
运维·系统架构·devops
Hui Baby16 小时前
K8S使用CRD和控制器简单应用
云原生·容器·kubernetes
通信小小昕16 小时前
Ubuntu 26.04 中文输入法安装
linux·运维·ubuntu