使用Docker安装Ollama及Open-WebUI完整教程

作者:吴业亮
博客:wuyeliang.blog.ZEEKLOG.net

一、Ollama 简介及工作原理

1. Ollama 简介及原理

  • 简介:Ollama 是一款轻量级、开源的大语言模型(LLM)运行工具,旨在简化本地部署和运行大语言模型的流程。它支持 Llama 3、Mistral、Gemini 等主流开源模型,用户无需复杂配置即可在本地设备(CPU 或 GPU)上快速启动模型,适用于开发测试、本地智能应用搭建等场景。
  • 工作原理
    • 采用模型封装机制,将大语言模型的运行环境、依赖库及推理逻辑打包为标准化格式,实现模型的一键下载、启动和版本管理。
    • 通过优化的推理引擎适配硬件架构,支持 CPU 基础运行和 GPU 加速(如 NVIDIA CUDA),减少资源占用并提升响应速度。
    • 提供简洁的 REST API 和命令行接口,降低开发者集成门槛,无需深入了解模型底层细节即可调用。
    • 支持容器化部署,确保跨环境一致性,避免依赖冲突问题。

2. Open-WebUI 简介及原理

  • 简介:Open-WebUI 是一款开源的可视化界面工具,专为 Ollama 设计,提供直观的交互界面用于管理和使用大语言模型。它支持模型切换、对话历史记录、参数调整等功能,让本地大语言模型的使用更便捷。
  • 工作原理
    • 作为前端交互层,通过 API 与 Ollama 后端通信,接收用户输入并将其转发给 Ollama 进行模型推理。
    • 解析 Ollama 返回的结果并以自然语言对话形式展示给用户,同时记录对话历史并支持上下文关联。
    • 提供模型管理功能,可直接在界面中下载、启动、停止 Ollama 支持的模型,简化模型运维流程。
    • 支持容器化部署,与 Ollama 容器通过网络互通,实现快速搭建完整的本地大语言模型交互系统。

二、安装Docker

1. 安装Docker依赖

apt-getinstall ca-certificates curl gnupg lsb-release 

2. 添加阿里云Docker软件源

curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg |sudo apt-key add - 

3. 配置系统软件源

编辑/etc/apt/sources.list文件,添加以下内容(清华大学Ubuntu镜像源):

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释 deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse # 安全更新软件源 deb http://security.ubuntu.com/ubuntu/ focal-security main restricted universe multiverse # deb-src http://security.ubuntu.com/ubuntu/ focal-security main restricted universe multiverse # 预发布软件源,不建议启用 # deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse # # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse 

4. 添加Docker软件源并更新密钥

add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys DDCAE044F796ECB0 

5. 安装Docker

apt-getinstall docker-ce docker-ce-cli containerd.io 

6. 验证Docker安装

docker -v 

7. 配置Docker国内镜像源

7.1 编辑配置文件/etc/docker/daemon.json
{"registry-mirrors":["https://docker.mirrors.ustc.edu.cn","https://hub-mirror.c.163.com","https://docker.m.daocloud.io","https://ghcr.io","https://mirror.baidubce.com","https://docker.nju.edu.cn"]}
7.2 重新加载并重启Docker
systemctl daemon-reload systemctl restart docker 

三、安装英伟达显卡驱动(GPU支持)

1. 配置存储库

curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey |sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg 

2. 设置源

创建并编辑nvidia-container-toolkit.list文件:

# 内容如下 deb https://mirrors.ustc.edu.cn/libnvidia-container/stable/deb/$(ARCH) / deb https://mirrors.ustc.edu.cn/libnvidia-container/stable/ubuntu18.04/$(ARCH) / #deb https://mirrors.ustc.edu.cn/libnvidia-container/experimental/deb/$(ARCH) /#deb https://mirrors.ustc.edu.cn/libnvidia-container/experimental/ubuntu18.04/$(ARCH) /

3. 更新包列表

sudoapt-get update 

4. 安装NVIDIA Container Toolkit

apt-getinstall -y nvidia-container-toolkit 

5. 配置Docker以支持Nvidia驱动

nvidia-ctk runtime configure --runtime=docker 

6. 重启Docker服务

systemctl restart docker.service 

四、使用Docker安装Ollama

1. 拉取Ollama镜像

官方镜像:

docker pull ollama/ollama:latest 

国内镜像(推荐):

docker pull dhub.kubesre.xyz/ollama/ollama:latest 

2. 启动Ollama容器

docker run -d \ --gpus=all \ --restart=always \ -v /root/project/docker/ollama:/root/project/.ollama \ -p 11434:11434 \ --name ollama \ ollama/ollama 
说明:此配置会让Ollama将模型保持加载在内存(显存)中

五、使用Docker安装Open-WebUI

1. 安装Main版本

docker run -d \ -p 15027:8080 \ --gpus all \ --add-host=host.docker.internal:host-gateway \ -v open-webui:/app/backend/data \ --name open-webui \ --restart always \ ghcr.nju.edu.cn/open-webui/open-webui:main 

2. 安装CUDA版本(GPU加速)

docker run -d \ -p 15027:8080 \ --gpus all \ --add-host=host.docker.internal:host-gateway \ -v open-webui:/app/backend/data \ --name open-webui \ --restart always \ ghcr.nju.edu.cn/open-webui/open-webui:cuda 

3. 访问Open-WebUI

打开浏览器访问以下地址进行登录:

http://192.168.1.129:15027/auth 

Read more

VSCode 中精准禁用 Copilot 代码补全:按语言与场景灵活配置

1. 为什么需要精准控制 Copilot 代码补全 作为一个用了 VSCode 和 Copilot 好几年的开发者,我深刻体会到 AI 代码补全的双刃剑效应。刚开始用 Copilot 的时候,那种"它怎么知道我要写什么"的惊喜感真的很棒,但后来我发现,在某些场景下,这种自动补全反而会成为负担。 比如我在刷算法题的时候,刚写了个函数名,Copilot 就直接把整个实现都给我补全了。这还训练什么?完全达不到练习的目的。还有时候在写一些特定语言的代码,Copilot 的补全风格和团队规范不一致,每次都要手动调整,反而增加了工作量。 更让我头疼的是在不同项目间切换的时候。有些项目我希望充分利用 Copilot 提高效率,有些项目则需要完全自己动手写代码。如果每次都去全局开关 Copilot,那也太麻烦了。 其实 Copilot 的设计团队早就想到了这些场景,他们在 VSCode 中提供了非常精细的控制方式。不只是简单的开和关,你可以按编程语言禁用,

比迪丽Stable Diffusion应用:独立开发者龙珠IP周边电商落地

比迪丽Stable Diffusion应用:独立开发者龙珠IP周边电商落地 1. 引言:当AI绘画遇上经典IP 如果你是《龙珠》的粉丝,或者你正在经营一个动漫周边的小店,有没有想过一个问题:如何快速、低成本地创作出高质量的龙珠角色图片,用于你的产品设计、社交媒体宣传或者粉丝社区运营? 传统的做法要么是请画师定制,成本高、周期长;要么是使用版权模糊的素材,风险大。对于独立开发者或小型电商团队来说,这常常是个两难的选择。 今天,我要分享的就是一个能完美解决这个问题的方案:利用比迪丽(Videl)AI绘画模型,结合Stable Diffusion技术,实现龙珠IP周边的快速创作与落地。这个方案的核心,是一个专门训练来生成《龙珠》角色“比迪丽”的LoRA模型。它支持动漫、二次元甚至写实多种画风,可以在Stable Diffusion、FLUX.1、ComfyUI等主流平台上运行,只需要输入 bidili、videl 或 比迪丽 等关键词就能触发。 在接下来的内容里,

在 NVIDIA DGX Spark部署 Stable Diffusion 3.5 并使用ComfyUI

在 NVIDIA DGX Spark部署 Stable Diffusion 3.5 并使用ComfyUI

📖 前言 随着 NVIDIA Blackwell 架构的问世,DGX Spark (Personal AI Supercomputer) 将桌面级 AI 算力推向了新的巅峰。这台怪兽级设备搭载了 GB200/GB10 级别的 GPU 和 NVIDIA Grace CPU (ARM64),并运行在最新的 CUDA 13 环境下。 然而,“最强硬件"往往伴随着"最难环境”。由于 Grace CPU 采用 ARM (aarch64) 架构,且 CUDA 13 过于前沿,传统的 PyTorch 安装方法极易失败。 本文将手把手教你如何在这台超级计算机上部署 Stable Diffusion

收藏级|小白也能上手!用魔搭+LLaMA Factory手把手实操大模型微调全流程

收藏级|小白也能上手!用魔搭+LLaMA Factory手把手实操大模型微调全流程

本文用「教育孩子」类比「训练AI」的通俗方式,拆解大模型微调的完整流程,全程基于魔搭平台和LLaMA Factory工具,从环境搭建、模型下载、数据准备,到模型训练、本地测试、模型导出,每一步都附具体操作和代码,无多余冗余。无论是零基础小白,还是刚接触大模型的程序员,都能跟着步骤一步步实操,轻松吃透预训练、微调和RLHF三大核心阶段,成功训练出属于自己的第一个大模型,建议收藏备用,实操时直接对照步骤走! 1、先搞懂:什么是大模型「微调」? 在动手实操前,我们先花2分钟搞懂核心概念——微调。常规大语言模型的训练,就像培养一个孩子,整体分为3个关键阶段,一张图就能看明白: 用「养娃」做类比,小白也能秒懂三个阶段的区别,建议记好这个类比,后续理解流程更轻松: 1. 预训练(对应孩子的「通识教育」) * 模型层面:通过自监督学习,读取海量文本数据,掌握基础的语言规则、词汇逻辑,