随着大语言模型(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 ComposeKubernetes来管理Ollama和Open-WebUI的多容器组合。例如,编写一个docker-compose.yml文件,将两个服务定义在一起,并设置网络共享,这样就能一键启动整个AI服务栈。

[AFFILIATE_SLOT_1]

常见问题与优化建议

  • 模型下载慢? 在Ollama容器中设置环境变量 OLLAMA_HOST=0.0.0.0 并配置国内代理或镜像。
  • GPU无法识别? 检查 nvidia-smi 是否正常,并确认Docker已配置 nvidia 运行时。
  • 容器重启后数据丢失? 确保在启动命令中挂载了数据卷(如 -v ollama_data:/root/.ollama)。
  • 端口冲突? 修改 -p 参数中的宿主机端口,如将 11434:11434 改为 11435:11434
[AFFILIATE_SLOT_2]

总结

通过本文的步骤,你已经学会了如何使用Docker在本地部署Ollama和Open-WebUI,构建一个功能完整的AI对话系统。从安装Docker环境、配置GPU支持,到拉取镜像并启动容器,每一步都经过了实践验证。借助容器化部署的优势,你可以轻松迁移到Kubernetes集群或云环境,实现更灵活的容器编排。现在,去探索大语言模型的无限可能吧!

---

相关课程

想要更系统地学习?推荐以下课程: