Windows 10 安装 DockerDesktop+Ollama 3 + open webui

一直想在Windows上安装好Ollama3,smile-yan看了挺多安装文章,还是很多坑,花了挺多的时间与精力, smile-yan写的文章挺不错,但是跟我环境还是不太一样,重新整理了一下。

  1. 环境准备与整体过程概述

1.1 环境准备

由于篇幅原因,这里假设大家已经安装好如下基础环境:

  • windows 10 / 11 操作系统(64位);
  • docker-desktop 最新版(为了避免一些没必要遇到的坑,请尽量保持能更新到最新版)。
  • WSL 2, 确保勾选Hyper-V、虚拟机平台、Linux子系统, 安装与设置也比较简单,请自行安装好这个环境;
  • 在windows 系统中,安装好 NVIDIA 驱动,就是普通的那种驱动即可,通过此驱动可以配置分辨率等等。

重要补充:本博文仅仅介绍安装好 nvidia 30系列 与 40系列显卡的个人电脑。

  • 如果个人电脑未安装显卡,无法完成以下介绍的各个步骤;但是基于 CPU 也同样可以部署,方法简单,不在此文介绍范围内;
  • 如果个人电脑安装的不是 nvidia 显卡或者显卡的版本不在30系列与40系列内,不在本文讨论范围内。

1.2 步骤概述

  1. 基于 WSL2 安装子系统,安装好 Ubuntu 子系统;
  2. 在子系统 WSL2 中安装好 Nvidia 驱动;
  3. 配置windows下的 docker-desktop,让 WSL2 作为 docker 的 backend;
  4. 重启一下设备,确保 WSL2 与 windows 下的 docker 已经连通无误;
  5. 安装镜像,验证docker镜像能通过WSL2以及WSL2下安装的驱动,使用显卡;
  6. 安装 Ollama3 + open webui 的 docker 镜像,验证可以正常使用;
  7. 基于 open webui 安装 Ollama3 模型,验证可以正常使用GPU。
  8. 重启一下验证无误,万事大吉 !

温馨提示: 整个过程可能遇到类似于网络超级慢,安装过程突然中断,安装docker镜像时PULL时间超级漫长等等问题。请务必耐心处理一个一个问题。

1.3 安装Docker Desktop

官网下载地址:https://www.docker.com/

如果有问题可以参考这个

windows安装Docker Desktop及国内镜像_docker desktop 国内镜像-CSDN博客

  1. 安装子系统以及子系统下的显卡驱动

2.1 验证 WSL2 安装无误

打开 windows 的命令行,输入如下命令:

bash 复制代码
 wsl --version

请确保 WSL 版本 >= 2.x 。

2.2 安装子系统 ubuntu

这个地方需要注意,有可能docker安装了子系统(识别到 wsl 环境可能会默认安装子系统),如图所示:

这样我们可以使用已经安装好的子系统,也可以考虑使用自己安装的 ubuntu 系统。

输入以下命令安装子系统:

bash 复制代码
wsl --update

接着输入

bash 复制代码
wsl --install

验证过程

bash 复制代码
 wsl --list

使用ubuntu系统

在自己的windows 系统下找到 ubuntu 系统,双击后会进入一个命令行窗口

2.3 安装显卡驱动(离线安装包的方法)

特别要注意,我们不要在子系统中安装 docker ,切记切记

参考地址:https://docs.nvidia.com/cuda/wsl-user-guide/index.html

请在 WSL2 命令行中,输入如下命令,删除已有的一些库文件:

bash 复制代码
sudo apt-key del 7fa2af80
  • 找资源

https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&Distribution=WSL-Ubuntu&target_version=2.0&target_type=runfile_local

  • 安装gcc
bash 复制代码
sudo apt-get install gcc -y

安装不成功,更改为阿里镜像源

ubuntu镜像_ubuntu下载地址_ubuntu安装教程-阿里巴巴开源镜像站

  • 安装CUDA
bash 复制代码
wget https://developer.download.nvidia.com/compute/cuda/12.6.0/local_installers/cuda_12.6.0_560.28.03_linux.run
sudo sh cuda_12.6.0_560.28.03_linux.run

如果不行,可以下在下 windows 系统浏览器下载离线驱动包

由于我多次尝试,发现网络问题使用在线安装很容易很容易报错(我是真的真的没成功过),所以这里我们使用离线安装的方法。

首先 使用自己的windows系统下的浏览器,访问 nvidia 官网驱动下载地址:https://developer.nvidia.com/cuda-downloads?target_os=Linux\&target_arch=x86_64\&Distribution=WSL-Ubuntu\&target_version=2.0\&target_type=runfile_local

执行以后,如果你遇到错误提示如下:

可能要等很久。。

如果这样此时已经证明我们安装驱动完成 。

2.4 配置环境变量

编辑 WSL2 的 ~/.bashrc 添加环境变量就像安装完驱动控制台输出内容一样(官方的建议)

我们使用 vi 命令编辑 .bashrc 文件,写入环境变量如下:

bash 复制代码
export PATH=/usr/local/cuda-12.5/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-12.5/lib64:$LD_LIBRARY_PATH

vi 的命令不熟悉,可以使用 vim 等等其他命令。

最后一个步骤是我们需要激活环境变量:

bash 复制代码
source ~/.bashrc

验证方法

输入

bash 复制代码
echo $LD_LIBRARY_PATH

将会打印我们上面配置的环境变量地址。

输入 nvidia-smi

bash 复制代码
nvidia-smi

会输出显卡的相关信息

输入 nvcc -V

bash 复制代码
nvcc -V

会输出 nvidia cuda 驱动相关信息

三个过程请都验证一下,避免以后出现乱七八遭的问题

2.5 配置 docker-desktop 与 WSL2 密切绑定

配置方法比较简单,请参考如下截图:

配置完成以后,一般情况下 windows下的docker 会重新启动,确保重启正常完成。

2.6 基于docker 安装 cuda-sample 验证 cuda 可用

之所以不直接安装 open webui ,是因为代价有点大,如果docker镜像不能正常访问GPU,那么添加 open webui 过程太浪费时间了。

在 WSL2 命令行中,输入内容如下:

bash 复制代码
sudo docker run --gpus all nvcr.io/nvidia/k8s/cuda-sample:nbody nbody -gpu -benchmark

安装完成以后,我们需要注意,在windows 的 docker-desktop 中查看启动日志。

请特别注意,日志中包括 CUDA 的相关内容,足够证明 docker 镜像中能使用 CUDA,也就是能使用GPU。

2.7 安装 open webui + ollama3

这里我们不分别安装两次了,我们使用官方提供了的方法,一个镜像包括了 open webui 与 ollama3,更加方便。

在 WSL2 的命令行中输入如下命令:

bash 复制代码
sudo docker run -d -p 3000:8080 --gpus=all -v ollama:/root/.ollama -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:ollama

这是一个比较漫长的过程,我家千兆的带宽速度还可以,几分钟下载完成。

成功安装完成以后,我们前去查看 docker 的容器启动日志:

我们可以看到日志中提示 CUDA 可用,说明一切正常,安装成功。

使用浏览器访问本地的 3000 端口,可以看到内容如下,

注册一个账号,非常简单,没有什么限制,注册登录后,通过设置可以使用中文,

2.8 添加模型与选择模型

点击 管理员设置 以后,找到 模型 ,输入模型的编号即可自动下载模型。

这里以 qwen2 为例

下载的过程比较漫长,网速要快。

接着回到主界面,我们可以下拉 "选择一个模型",如下图所示(我总共下载了2个模型)

接着就可以正常聊天了 ~

2.9 验证大模型推断过程是基于GPU完成

在 windows 下,使用快捷键 Ctrl + Shift + Esc ,弹出如下 任务管理器窗口,接着选择左边导航栏中的 性能 可以看到如下内容:

接着我们在 open webui 中输入一个相对复杂的对话,让大模型推断时间久一些,然后同时观察 刚刚打开的窗口中 GPU 的变化情况。

2.10 验证重启后,模型依然存在

重启一下我们的个人电脑,重新启动我们前面创建的 container ,可以看到模型依然存在,之前完成的内容并不会因此而失效。

  1. 参考资料

https://developer.nvidia.com/cuda-downloads?target_os=Linux\&target_arch=x86_64\&Distribution=WSL-Ubuntu\&target_version=2.0\&target_type=runfile_local

https://docs.nvidia.com/cuda/wsl-user-guide/index.html

https://github.com/open-webui/open-webui/tree/main

  1. 总结

本文记录了自己安装部署 Ollama3 + open webui 并基于GPU推断的整个过程,由于篇幅问题,没有办法将所有我遇到的问题都记录下来,但可以基本确定的是,按照如上步骤完成部署安装,一般情况下是可以正常运行的。

感谢原文链接:https://blog.csdn.net/smileyan9/article/details/140391667

相关推荐
鱼满满记2 小时前
1.6K+ Star!GenAIScript:一个可自动化的GenAI脚本环境
人工智能·ai·github
九鼎科技-Leo2 小时前
什么是 ASP.NET Core?与 ASP.NET MVC 有什么区别?
windows·后端·c#·asp.net·mvc·.net
manfulshark3 小时前
OPENAI官方prompt文档解析
ai·prompt
阿_旭3 小时前
基于YOLO11/v10/v8/v5深度学习的维修工具检测识别系统设计与实现【python源码+Pyqt5界面+数据集+训练代码】
人工智能·python·深度学习·qt·ai
NETFARMER运营坛4 小时前
如何优化 B2B 转化率?这些步骤你不可不知
大数据·安全·阿里云·ai·ai写作
黎明晓月6 小时前
Java之字符串分割转换List
java·windows·list
九鼎科技-Leo6 小时前
在 C# 中,ICollection 和 IList 接口有什么区别?
windows·c#·.net
顾辰呀7 小时前
实现uniapp-微信小程序 搜索框+上拉加载+下拉刷新
前端·windows
angleboy88 小时前
【LLM Agents体验 1】Dify框架的安装指南
人工智能·语言模型·大模型·nlp
AI_小站8 小时前
LLM——10个大型语言模型(LLM)常见面试题以及答案解析
人工智能·程序人生·语言模型·自然语言处理·大模型·llm·大模型面试