deepseek在ubuntu本地部署(docker+ollama+open-webui)

deepseek在ubuntu本地部署(docker+ollama+open-webui)

1. docker安装

安装docker的前置条件

# 安装前先卸载操作系统默认安装的docker(需要root权限)
sudo apt-get remove docker docker-engine docker.io containerd runc

# 安装必要支持
sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release

准备安装

# 1.添加 Docker 官方 GPG key
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# 阿里源(如果不能访问Docker的官方GPG key,推荐使用阿里的GPG key)
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg


# 2.添加 apt 源:
# docker官方源
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

# 阿里apt源(与1相同)
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null


# 更新源
sudo apt update
sudo apt-get update

安装docker

# 安装最新版本的Docker
sudo apt install docker-ce docker-ce-cli containerd.io
# 等待安装完成

# 查看Docker版本
sudo docker version

# 查看Docker运行状态
sudo systemctl status docker

安装docker命令补全工具

sudo apt-get install bash-completion

sudo curl -L https://raw.githubusercontent.com/docker/docker-ce/master/components/cli/contrib/completion/bash/docker -o /etc/bash_completion.d/docker.sh

source /etc/bash_completion.d/docker.sh
允许非Root用户执行docker 命令
# 添加docker用户组
sudo groupadd docker

# 将当前用户添加到用户组
sudo usermod -aG docker $USER
# 将其它用户名的用户添加到用户组
sudo usermod -aG docker username

# 使权限生效
newgrp docker

# 测试
# 查看所有容器
docker ps -a

# 更新用户的.bashrc文件
#如果没有此行命令,你会发现,当你每次打开新的终端
#你都必须先执行一次 “newgrp docker” 命令
#否则当前用户还是不可以执行docker命令
groupadd -f docker

2. docker内ollama和open-webui安装

把下属代码保存到docker-compose.yml文件中

services:
  ollama:
    image: ollama/ollama
    container_name: ollama
    ports:
      - "11434:11434"
    volumes:
      - ./ollama:/root/.ollama
    restart: unless-stopped

  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    container_name: open-webui
    environment:
      ROOT_PATH: "ollama"
      OLLAMA_BASE_URL: "http://ollama:11434"
    ports:
      - "3020:8080"
    volumes:
      - ./open-webui:/app/backend/data
    restart: always
    depends_on:
      - ollama

在当前文件夹运行下述命令

docker compose up -d
#等待ollama和open-webui安装并启动

# 查看docker内ollama及open-webui是否正常运行
docker compose ps

# 从上面设置的端口3020登录open-webui(网页输入)
http://$ip:3020

# 查看本机ip
hostname -I

# 停止服务
docker compose down

在open-webui下安装不同大模型,如下图所示,登录open-webui后可在左上角选择不同的大模型下载使用,可下载的大模型可从ollama.com网站找到。
在这里插入图片描述

3. 大模型联网搜索设置

上述步骤1和2已经部署大模型到本地,如需要联网搜索,可按照下述步骤设置(需要fanqiang进行设置,配置完成后不需要fanqiang)

  1. 登录google开发者账号(有Google账号可以直接一键注册) https://developers.google.com/custom-search
  2. 去可编程搜索引擎(pse)控制面板里添加一个自定义搜索引擎 https://programmablesearchengine.google.com/controlpanel/all
  3. 点击获取密钥拿到api密钥(记住保存下来!!!) https://developers.google.com/custom-search/v1/introduction
  4. 回到控制面板点击创建的自定义搜索引擎(复制此页面的搜索引擎id) https://programmablesearchengine.google.com/controlpanel/all
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    然后在open-webui中按照下述步骤把搜索引擎密钥api和搜索引擎id填入,即可联网搜索
    请添加图片描述
    参考文章:
    https://blog.youkuaiyun.com/u011278722/article/details/137673353
    https://www.cnblogs.com/Hollow2333/p/18694512
<think>好的,我现在需要帮助用户解决在Docker部署和使用vLLM结合Open WebUI QwQ-32B模型的问题。首先,我需要确认用户提到的模型名称是否正确,用户写的是“QwQ-32B”,但根据提供的引用,正确的名称应该是“Qwen-32B”或“DeepSeek-R1-Distill-Qwen-32B”。可能是用户打错了,但需要先确认这一点。假设用户确实是指Qwen-32B,那么接下来需要结合引用中的信息来构建步骤。 根据引用[2],vLLM可以无缝集成HuggingFace和Modelscope的模型,而引用[3]提到昇腾部署DeepSeek-R1-Distill-Qwen-32B支持OpenAI-API。因此,用户可能希望使用Docker容器来部署vLLM服务,并通过Open WebUI与之交互。 首先,用户需要编写Dockerfile来构建包含vLLM和必要依赖的镜像。需要安装vLLM、PyTorch、CUDA等。然后,配置vLLM的服务,启动模型服务,如引用[1]和[3]中的命令,设置模型名称和API参数。接下来,部署Open WebUI,修改其配置文件指向vLLM的API地址,确保两者在同一个Docker网络中可以通信。最后,通过Docker Compose编排这两个服务,简化部署流程。 可能遇到的问题包括模型路径是否正确、端口映射是否冲突、依赖版本是否兼容等。需要提醒用户注意这些方面,并建议检查日志进行故障排除。此外,用户可能需要根据实际硬件调整启动参数,比如GPU支持和模型加载选项。 总结步骤:构建vLLM镜像,启动模型服务,部署Open WebUI,配置连接,最后测试。同时,生成相关问题,如性能优化、API认证、日志查看等,帮助用户进一步了解部署后的管理和使用。</think>### 在 Docker部署 vLLM 与 Open WebUI Qwen-32B 的步骤 #### 1. **准备 Docker 环境** - 安装 Docker 和 NVIDIA 容器工具(如需 GPU 支持): ```bash # 安装 Docker curl -fsSL https://get.docker.com | bash # 安装 NVIDIA Container Toolkit distribution=$(. /etc/os-release;echo $ID$VERSION_ID) curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list apt-get update && apt-get install -y nvidia-docker2 ``` #### 2. **构建 vLLM 服务镜像** - 创建 `Dockerfile.vllm`: ```dockerfile FROM nvidia/cuda:12.1.1-base-ubuntu22.04 RUN apt-get update && apt-get install -y python3-pip git RUN pip3 install vllm transformers torch EXPOSE 8000 CMD ["python3", "-m", "vllm.entrypoints.openai.api_server", "--model", "Qwen/Qwen-32B", "--served-model-name", "Qwen-32B", "--tensor-parallel-size", "4"] ``` - 构建镜像: ```bash docker build -t vllm-qwen -f Dockerfile.vllm . ``` #### 3. **启动 vLLM 服务容器** - 运行容器(假设使用 4 张 GPU): ```bash docker run --gpus all -p 8000:8000 --name vllm_service vllm-qwen ``` - 验证服务: ```bash curl http://localhost:8000/v1/models ``` #### 4. **部署 Open WebUI** - 创建 `docker-compose.yml`: ```yaml version: '3' services: webui: image: ghcr.io/open-webui/open-webui:main ports: - "3000:8080" environment: - OPENAI_API_BASE_URL=http://vllm_service:8000/v1 - DEFAULT_MODEL=Qwen-32B depends_on: - vllm_service vllm_service: image: vllm-qwen ports: - "8000:8000" deploy: resources: reservations: devices: - driver: nvidia count: 4 capabilities: [gpu] ``` - 启动服务: ```bash docker-compose up -d ``` #### 5. **访问 Open WebUI** - 浏览器访问 `http://localhost:3000`,在设置中选择模型 `Qwen-32B` 并保存。 --- ### 关键配置说明 1. **vLLM 模型加载**:通过 `--model Qwen/Qwen-32B` 指定模型路径(需提前从 HuggingFace 或 ModelScope 下载)[^2]。 2. **GPU 资源配置**:`tensor-parallel-size` 需与实际 GPU 数量匹配[^3]。 3. **服务互联**:Docker Compose 中通过服务名 `vllm_service` 实现容器间通信,无需暴露端口到宿主机[^1]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值