前言

本文使用Docker、Ollama以及Open WebUI在Linux部署本地模型,实现web式访问大模型。

工具安装

Ollama

运行命令

1
curl -fsSL https://ollama.com/install.sh | sh

Docker

1. 安装 Docker
步骤 1.1: 更新系统

在安装 Docker 之前,确保系统是最新的:

1
2
sudo apt update  
sudo apt upgrade -y
步骤 1.2: 安装必要的依赖

安装一些必要的依赖包:

1
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common  
步骤 1.3: 添加 Docker 官方 GPG 密钥
1
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg  
步骤 1.4: 添加 Docker 官方仓库
1
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null  
步骤 1.5: 安装 Docker

更新包列表并安装 Docker:

1
2
sudo apt update  
sudo apt install -y docker-ce docker-ce-cli containerd.io
步骤 1.6: 验证 Docker 安装

运行以下命令,确保 Docker 安装成功:

1
sudo docker --version  
步骤 1.7: 配置非 root 用户运行 Docker(可选)

将当前用户添加到 Docker 组:

1
sudo usermod -aG docker $USER  

然后重新登录或运行以下命令使更改生效:

1
newgrp docker  

2. 安装 Docker Compose

Docker Compose 用于运行多容器应用程序。

步骤 2.1: 下载 Docker Compose

运行以下命令下载最新版本的 Docker Compose:

1
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose  
步骤 2.2: 设置可执行权限
1
sudo chmod +x /usr/local/bin/docker-compose  
步骤 2.3: 验证安装
1
docker-compose --version  

环境更改

由于在Docker中访问Ollama需要监听网络接口,所以我们需要更改Ollama服务配置。

1
vi /etc/systemd/system/ollama.service

在[Service]下边增加:

1
Environment="OLLAMA_HOST=0.0.0.0:11434" 

重新加载systemd并且重启Ollama

1
2
systemctl daemon-reload
systemctl restart ollama

大模型下载

以DeepSeek-R1 32B为例

1
ollama run deepseek-r1:32b

跑完进度条自动进入命令行式聊天界面。

开启服务

1
ollama serve

UI安装

步骤 1:拉取 Open WebUI镜像

首先从 GitHub Container Registry 中提取最新的 Open WebUI Docker 镜像。

1
docker pull ghcr.io/open-webui/open-webui:main
第 2 步:运行容器

使用默认设置运行容器。此命令包含卷映射以确保持久数据存储。

1
docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
重要标志
  • 卷映射(-v open-webui:/app/backend/data:确保数据的持久存储。这可以防止容器重启期间数据丢失。
  • 端口映射(-p 3000:8080:在本地机器的端口 3000 上公开 WebUI。
访问WebUI

容器运行后,访问Open WebUI:

http://本地主机:3000

进行简单的管理员配置之后便可以开始模型使用。

该封面图片由BernhardPixabay上发布