随着大语言模型(LLM)的普及,越来越多的开发者希望能在本地环境中快速部署和体验这些模型。然而,复杂的依赖配置、GPU驱动安装以及环境一致性等问题常常令人头疼。本文将带你通过Docker容器化部署,轻松搞定Ollama与Open-WebUI的安装与配置,让你在几分钟内拥有一个功能完备的本地AI聊天系统。无论你是AI爱好者还是容器技术新手,这篇教程都将为你提供清晰、可操作的步骤。
Ollama 与 Open-WebUI 简介:容器化部署的最佳拍档
Ollama 是一款轻量级、开源的大语言模型运行工具,它通过模型封装机制将LLM的运行环境、依赖库及推理逻辑打包为标准化格式,实现一键下载、启动和版本管理。其优化的推理引擎支持CPU基础运行和GPU加速(如NVIDIA CUDA),并提供简洁的REST API和命令行接口,极大降低了开发者集成门槛。
而 Open-WebUI 则是专为Ollama设计的开源可视化界面。它作为前端交互层,通过API与Ollama后端通信,支持模型切换、对话历史记录、参数调整等功能。两者结合,再加上Docker容器化部署,可以确保跨环境一致性,避免依赖冲突问题,让你在Kubernetes或单机环境中都能快速搭建完整的本地大语言模型交互系统。
第一步:在Ubuntu上安装Docker环境
Docker是容器化部署的基础。以下步骤在Ubuntu系统上完成,其他Linux发行版可参考调整。
1. 安装Docker依赖
首先更新包管理器并安装Docker所需的依赖包:
apt-get install ca-certificates curl gnupg lsb-release
2. 添加阿里云Docker软件源
为了加速下载,我们使用阿里云镜像源:
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
3. 配置系统软件源
编辑源配置文件,添加清华大学Ubuntu镜像源:
/etc/apt/sources.list
# 默认注释了源码镜像以提高 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官方GPG密钥并更新源
确保软件包签名验证通过:
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引擎
执行以下命令安装Docker:
apt-get install docker-ce docker-ce-cli containerd.io
6. 验证Docker安装
运行hello-world容器测试:
docker -v
7. 配置Docker国内镜像源(加速拉取)
编辑Docker配置文件:
/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"
]
}
重新加载并重启Docker服务:
systemctl daemon-reload
systemctl restart docker
✅ 至此,Docker环境已准备就绪!
第二步:安装NVIDIA显卡驱动与Container Toolkit(可选但强烈推荐)
如果你拥有NVIDIA GPU并希望获得更快的推理速度,请按以下步骤操作。⚠️ 如果没有GPU,可直接跳过此节。
1. 配置NVIDIA容器存储库
添加NVIDIA官方存储库:
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
2. 设置APT源
创建并编辑源文件:
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. 更新包列表
确保新源生效:
sudo apt-get update
4. 安装NVIDIA Container Toolkit
该工具让Docker容器能访问GPU:
apt-get install -y nvidia-container-toolkit
5. 配置Docker以支持NVIDIA运行时
编辑Docker daemon配置文件:
nvidia-ctk runtime configure --runtime=docker
6. 重启Docker服务
使配置生效:
systemctl restart docker.service
完成以上步骤后,Docker容器即可利用GPU进行模型推理加速。
第三步:使用Docker安装Ollama
Ollama的容器化部署非常简单,只需拉取镜像并启动容器即可。
1. 拉取Ollama镜像
官方镜像(适合海外用户):
docker pull ollama/ollama:latest
国内镜像(推荐,拉取速度更快):
docker pull dhub.kubesre.xyz/ollama/ollama:latest
2. 启动Ollama容器
使用以下命令启动Ollama,并映射端口、挂载数据卷:
docker run -d \
--gpus=all \
--restart=always \
-v /root/project/docker/ollama:/root/project/.ollama \
-p 11434:11434 \
--name ollama \
ollama/ollama
说明:此配置会让Ollama将模型保持加载在内存(显存)中
启动后,Ollama的REST API将默认监听 http://localhost:11434,你可以通过命令行或API调用模型。
️ 第四步:使用Docker安装Open-WebUI
Open-WebUI提供了优雅的聊天界面,与Ollama无缝集成。
1. 安装Main版本(CPU通用)
适用于无GPU或仅需CPU推理的场景:
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加速)
如果你已配置NVIDIA 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
首次访问需要注册一个管理员账号,之后即可在界面中下载、切换模型,开始聊天。
扩展提示: 如果你计划将这套系统部署到生产环境或进行容器编排,可以考虑使用Docker Compose或Kubernetes来管理Ollama和Open-WebUI的多容器组合。例如,编写一个docker-compose.yml文件,将两个服务定义在一起,并设置网络共享,这样就能一键启动整个AI服务栈。
常见问题与优化建议
- 模型下载慢? 在Ollama容器中设置环境变量
OLLAMA_HOST=0.0.0.0并配置国内代理或镜像。 - GPU无法识别? 检查
nvidia-smi是否正常,并确认Docker已配置nvidia运行时。 - 容器重启后数据丢失? 确保在启动命令中挂载了数据卷(如
-v ollama_data:/root/.ollama)。 - 端口冲突? 修改
-p参数中的宿主机端口,如将11434:11434改为11435:11434。
总结
通过本文的步骤,你已经学会了如何使用Docker在本地部署Ollama和Open-WebUI,构建一个功能完整的AI对话系统。从安装Docker环境、配置GPU支持,到拉取镜像并启动容器,每一步都经过了实践验证。借助容器化部署的优势,你可以轻松迁移到Kubernetes集群或云环境,实现更灵活的容器编排。现在,去探索大语言模型的无限可能吧!
---
浙公网安备 33010602011771号