媒介
在现代的人工智能应用中,基于模型的对话系统和开放式网络UI正逐渐成为越来越多企业和开发者的选择。本篇博文将为您详细讲解怎样通过 Docker 部署 ollama、deepseek 和 open-webui,并联合利用 Docker Compose 实现更加高效、便捷的管理。
AI 模型分享、讨论、下载,开放社区 Hugging Face 内里可以找到很多建议
一、工具简介
在开始之前,我们先相识一下每个工具的功能和作用:
ollama
- ollama 是一个强大的对话生成模型,它支持多种自然语言处理任务,包括对话生成、问答、文本总结等。通过容器化部署,ollama 可以轻松地集成到开发环境中,提供一个机动、可扩展的对话服务。
deepseek
- deepseek 是一个基于深度学习的语义理解模型,通常与对话系统一起利用。它能够根据用户的输入快速生成符合语义逻辑的答复,从而增强对话系统的正确性和响应速率。在本教程中,我们通过 ollama 运行 deepseek 模型,提供强大的对话能力。
open-webui
- open-webui 是一个开源的 Web 界面,用于与 AI 模型进行交互。通过它,用户可以通过欣赏器与部署的 AI 模型进行实时对话,查看模型的输出结果。open-webui 提供了一个简洁、易用的 UI,方便用户快速集成和管理对话系统。
二、前期准备
在开始部署之前,首先确保系统中已安装好 Docker。若尚未安装,可以参考以下教程:
Windows 系统 Docker 安装教程(菜鸟教程)
Docker 是一个基于容器的轻量级假造化平台,能够帮助我们更轻松地部署和运行应用。
三、部署步骤
1. 安装并配置 ollama
可参考:
- ollama官网
- ollama 官方 docker 镜像
ollama 是一个强大的对话生成模型,支持多个版本的对话能力。在 Docker 中部署 ollama 是十分简单的。我们首先需要从 Docker Hub 上拉取 ollama 的镜像。
利用 CPU 运行
用如下下令,可以直接跑在 CPU 上:
- docker run -d -v D:/ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
复制代码 -d:后台运行容器
-v D:/ollama:/root/.ollama:将当地文件夹挂载到容器内
-p 11434:11434:映射端口,方便外部访问
--name ollama:容器名称
ollama/ollama:镜像名
部署完成后,执行以下下令启动 deepseek 模型:
- docker exec -it ollama ollama run deepseek-r1:1.5b
复制代码 此时,系统已启动,进入容器后,你可以看到一个 >>> 的提示符,表示可以开始与模型进行对话了。
利用 GPU 运行
安装 NVIDIA 驱动
请参考 Ubuntu 安装 NVIDIA 驱动实操指南(含卸载)
安装 NVIDIA 容器工具包
- 利用 Apt 安装:
- curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey \
- | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
- curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list \
- | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' \
- | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
- sudo apt-get update
复制代码 - sudo apt-get install -y nvidia-container-toolkit
复制代码
- 利用 Yum 或 Dnf 安装:
- curl -s -L https://nvidia.github.io/libnvidia-container/stable/rpm/nvidia-container-toolkit.repo \
- | sudo tee /etc/yum.repos.d/nvidia-container-toolkit.repo
复制代码 - sudo yum install -y nvidia-container-toolkit
复制代码
配置 Docker 利用 Nvidia 驱动
- sudo nvidia-ctk runtime configure --runtime=docker
- sudo systemctl restart docker
复制代码 启动容器:
- docker run -d --gpus=all -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
复制代码 配置 AMD GPU
利用 AMD GPU 启动 ollama 时,可以利用 rocm 标签,并执行以下下令:
- docker run -d --device /dev/kfd --device /dev/dri -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama:rocm
复制代码 2. 当地运行模型
现在可以运行模型了:
- docker exec -it ollama ollama run deepseek-r1:1.5b
复制代码 2. 部署 open-webui
接下来,我们将部署 open-webui,它是一个用于与 AI 模型交互的 Web 界面。只需要执行以下下令即可启动:
- docker run -d -p 3000:8080 -e OLLAMA_BASE_URL=http://192.168.x.x:11434 -v D:/open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
复制代码 -p 3000:8080:将容器的 8080 端口映射到宿主机的 3000 端口
-e OLLAMA_BASE_URL=http://192.168.x.x:11434:配置 ollama 服务的基础 URL 地点(此处 192.168.x.x 请替换为本机 IP 地点)
-v D:/open-webui:/app/backend/data:挂载当地目次到容器
--name open-webui:容器名称
--restart always:容器非常退出后自动重启
可利用 ip a (Linux)或 ipconfig (Windows)下令查看本机 ip 地点。
四、调试与验证
完成部署后,可以通过欣赏器访问 http://localhost:3000 进入 open-webui。在这个 Web 界面上,你可以与 deepseek 模型进行交互。
登录进去后,左上角选择模型。
五、Docker Compose 简化部署
为了让部署过程更加自动化和易于管理,我们可以将以上下令封装到一个 docker-compose.yml 文件中。通过 Docker Compose,我们可以实现一次性启动整个应用栈。
以下是 docker-compose.yml 文件的示例:
- version: '3'
- services:
- ollama:
- image: ollama/ollama:0.5.8
- container_name: ollama
- volumes:
- - ./ollama:/root/.ollama
- deploy:
- resources:
- reservations:
- devices:
- - driver: nvidia
- capabilities: ["gpu"]
- count: all # 调整数量以匹配你希望使用的 GPU 数量
- ports:
- - "11434:11434"
- restart: always
- open-webui:
- image: ghcr.io/open-webui/open-webui:main
- container_name: open-webui
- ports:
- - "3000:8080"
- environment:
- - OLLAMA_BASE_URL=http://ollama:11434
- volumes:
- - ./open-webui:/app/backend/data
- restart: always # 可以选择是否需要重启策略
复制代码 在文件夹中创建 docker-compose.yml,然后执行以下下令启动所有服务:
Docker Compose 会根据 docker-compose.yml 文件自动拉取镜像、创建容器并启动服务。你只需要专注于应用的业务逻辑,无需手动管理每个容器。
然后再执行:
- docker exec -it ollama ollama run deepseek-r1:1.5b
复制代码 假如跑 CPU 的话,那就把这段删掉就好了:
- deploy:
- resources:
- reservations:
- devices:
- - driver: nvidia
- capabilities: ["gpu"]
- count: all # 调整数量以匹配你希望使用的 GPU 数量
复制代码 六、留意事项与常见标题
发现实在是太多内容了,单独拎出来另写一篇博文了
部署 ollama + deepseek + open-webui 遇到的常见标题与办理建议
六、总结
通过以上步骤,我们已经乐成地在 Docker 中部署了 ollama、deepseek 和 open-webui,并通过 Docker Compose 优化了整个部署过程。这一组合为开发者和 AI 研究职员提供了一个快速、高效的对话系统办理方案,可以方便地进行自界说开发与实行。
假如有任何标题,欢迎留言讨论!
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |