上一篇 下一篇 分享链接 返回 返回顶部

企业内网部署 DeepSeek:从 Docker 快速试用到生产级落地指南

发布人:慈云数据-客服中心 发布时间:6小时前 阅读量:1

DeepSeek Docker部署教程|适合企业用户

随着大模型在企业知识问答、代码辅助、智能客服、数据分析、办公自动化等场景中的落地,越来越多企业开始关注私有化部署大模型。相比直接调用公有云 API,本地或私有云部署 DeepSeek 具备数据可控、权限可管、成本可预测、系统可集成等优势。

本文将面向企业用户,介绍如何使用 Docker 部署 DeepSeek 相关模型服务,并提供两种常见方案:

  1. Ollama + Docker:适合快速验证、轻量部署、内部试用
  2. vLLM + Docker:适合生产环境、高并发推理、企业级服务化

文章将从环境准备、部署步骤、接口调用、权限安全、性能优化、运维建议等方面展开,帮助企业团队搭建一套可用、可扩展、可维护的 DeepSeek 私有化推理服务。


一、为什么企业用户适合用 Docker 部署 DeepSeek?

Docker 是目前企业应用部署中非常常见的容器化技术。对于 DeepSeek 这类大模型应用而言,Docker 部署具有明显优势。

1. 环境一致,减少部署问题

大模型运行通常依赖 Python、CUDA、PyTorch、Transformers、推理框架等复杂环境。如果直接在宿主机安装,容易出现版本冲突、驱动不兼容、依赖损坏等问题。

通过 Docker,可以将运行环境封装到镜像中,实现:

  • 开发环境与生产环境一致
  • 测试环境与上线环境一致
  • 多台服务器之间快速复制部署
  • 降低运维排障复杂度

2. 便于资源隔离

企业通常会在同一批服务器上运行多个业务系统。Docker 可以通过容器隔离 CPU、内存、端口、文件系统等资源,避免不同应用互相影响。

对于 GPU 服务器,还可以通过 NVIDIA Container Toolkit 将 GPU 资源映射给指定容器,实现推理服务与其他业务的隔离运行。

3. 易于集成现有企业系统

DeepSeek 私有化部署后,可以通过 HTTP API 或 OpenAI 兼容接口接入企业内部系统,例如:

  • 企业知识库
  • OA 系统
  • CRM 系统
  • 工单系统
  • BI 分析平台
  • 内部代码助手
  • 智能客服系统
  • 企业微信、钉钉、飞书机器人

通过 Docker 部署后,服务可以统一接入网关、负载均衡、监控系统和日志平台。

4. 更符合数据安全要求

许多企业涉及客户资料、合同、财务、研发代码、生产数据等敏感信息,不适合直接发送到外部 API。

本地部署 DeepSeek 可以让模型推理过程在企业内网完成,降低数据泄露风险,也更方便满足合规要求。


二、部署前准备

在开始之前,需要先明确部署目标。不同规模的模型,对硬件资源要求差异较大。


三、硬件配置建议

以下配置仅供参考,实际需求取决于模型大小、上下文长度、并发量、量化方式和推理框架。

场景 推荐模型 推荐配置
个人测试 / 小团队试用 DeepSeek-R1-Distill-Qwen-1.5B / 7B 16GB 内存,普通 CPU 或入门 GPU
企业内部轻量助手 7B / 8B 量化模型 32GB 内存,单卡 12GB - 24GB 显存
中等规模知识问答 14B / 32B 量化模型 64GB 内存,单卡 24GB - 48GB 显存
高并发生产服务 32B / 70B 级别模型 多卡 GPU,80GB 显存级别更佳
代码生成 / 复杂推理 DeepSeek Coder / R1 系列大模型 建议使用高显存 GPU 和高性能推理框架

如果企业只是做概念验证,可以先使用 Ollama 运行较小参数模型。如果计划上线生产,则建议使用 vLLM、TensorRT-LLM、SGLang 等高性能推理框架。


四、软件环境要求

本文以 Linux 服务器为例,推荐使用 Ubuntu 20.04 / 22.04 / 24.04。

基础环境

建议准备以下软件:

  • Docker Engine
  • Docker Compose
  • NVIDIA Driver
  • NVIDIA Container Toolkit
  • Git
  • curl
  • nvidia-smi

如果是 CPU 部署,可以不安装 NVIDIA 相关组件。但对于企业级应用,通常建议使用 GPU。


五、安装 Docker

如果服务器尚未安装 Docker,可以参考以下步骤。

sudo apt update
sudo apt install -y ca-certificates curl gnupg lsb-release

添加 Docker 官方 GPG 密钥:

sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

添加 Docker 软件源:

echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

安装 Docker:

sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

验证安装:

docker version
docker compose version

将当前用户加入 docker 用户组,避免每次执行都需要 sudo:

sudo usermod -aG docker $USER

执行后重新登录服务器,使配置生效。


六、安装 NVIDIA Container Toolkit

如果需要在 Docker 容器中使用 GPU,需要安装 NVIDIA Container Toolkit。

首先确认宿主机可以识别 GPU:

nvidia-smi

如果可以看到 GPU 型号、驱动版本和显存信息,说明驱动安装正常。

安装 NVIDIA Container Toolkit:

distribution=$(. /etc/os-release;echo $ID$VERSION_ID)

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/$distribution/libnvidia-container.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 update
sudo apt install -y nvidia-container-toolkit

配置 Docker 使用 NVIDIA Runtime:

sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker

测试容器是否能访问 GPU:

docker run --rm --gpus all nvidia/cuda:12.3.0-base-ubuntu22.04 nvidia-smi

如果容器中也能正常输出 GPU 信息,说明 GPU 容器环境已经配置完成。


七、方案一:使用 Ollama 快速部署 DeepSeek

Ollama 是一个非常适合快速运行大模型的工具,支持拉取和运行多种开源模型。它的优势是部署简单、上手快,适合企业内部验证、Demo、测试环境和小规模使用。


1. 使用 Docker 启动 Ollama

创建模型数据目录:

mkdir -p /data/ollama

启动 Ollama 容器:

docker run -d \
  --name ollama \
  --restart unless-stopped \
  --gpus all \
  -p 11434:11434 \
  -v /data/ollama:/root/.ollama \
  ollama/ollama

如果是 CPU 环境,可以去掉 --gpus all

docker run -d \
  --name ollama \
  --restart unless-stopped \
  -p 11434:11434 \
  -v /data/ollama:/root/.ollama \
  ollama/ollama

查看容器状态:

docker ps

查看日志:

docker logs -f ollama

2. 拉取 DeepSeek 模型

进入容器:

docker exec -it ollama bash

拉取 DeepSeek 相关模型,例如:

ollama pull deepseek-r1:7b

也可以根据实际资源选择其他版本:

ollama pull deepseek-r1:1.5b
ollama pull deepseek-r1:8b
ollama pull deepseek-r1:14b

注意:模型名称可能会随着 Ollama 模型库更新而变化,实际部署时建议先在 Ollama 官方模型库中确认可用名称。


3. 命令行测试模型

在容器内执行:

ollama run deepseek-r1:7b

输入问题:

请用中文解释一下企业为什么需要私有化部署大模型。

如果可以正常返回结果,说明模型已经运行成功。


4. 使用 HTTP API 调用

Ollama 默认监听 11434 端口,可以通过 HTTP API 调用。

示例:

curl http://localhost:11434/api/generate \
  -d '{
    "model": "deepseek-r1:7b",
    "prompt": "请写一段企业AI助手的介绍",
    "stream": false
  }'

如果企业内部其他服务需要访问,可以使用服务器内网 IP:

curl http://192.168.1.100:11434/api/generate \
  -d '{
    "model": "deepseek-r1:7b",
    "prompt": "请总结一下Docker部署大模型的优点",
    "stream": false
  }'

5. 使用 Docker Compose 部署 Ollama

企业环境更推荐使用 Docker Compose 管理服务。

创建目录:

mkdir -p /opt/deepseek-ollama
cd /opt/deepseek-ollama

创建 docker-compose.yml

services:
  ollama:
    image: ollama/ollama
    container_name: deepseek-ollama
    restart: unless-stopped
    ports:
      - "11434:11434"
    volumes:
      - /data/ollama:/root/.ollama
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [gpu]

启动服务:

docker compose up -d

查看日志:

docker compose logs -f

停止服务:

docker compose down

八、方案二:使用 vLLM 部署 DeepSeek 生产推理服务

如果企业对并发、吞吐、延迟和 OpenAI API 兼容性有要求,建议使用 vLLM 部署。

vLLM 是一个高性能大模型推理框架,具备如下特点:

  • 支持 OpenAI 兼容接口
  • 支持连续批处理
  • 支持 PagedAttention
  • 适合高并发推理场景
  • 支持多 GPU 张量并行
  • 更适合生产服务化部署

1. 准备模型目录

企业生产环境通常会提前从 Hugging Face、ModelScope 或内部模型仓库下载模型文件,并挂载到容器中。

例如:

mkdir -p /data/models/deepseek

将模型文件放入:

/data/models/deepseek/DeepSeek-R1-Distill-Qwen-7B

实际目录结构类似:

/data/models/deepseek/DeepSeek-R1-Distill-Qwen-7B
├── config.json
├── tokenizer.json
├── tokenizer_config.json
├── model.safetensors
└── ...

对于企业用户,建议建立内部模型仓库或对象存储,避免生产服务器直接从公网下载模型。


2. 使用 Docker 启动 vLLM

以下示例部署一个 OpenAI 兼容接口服务:

docker run -d \
  --name deepseek-vllm \
  --restart unless-stopped \
  --gpus all \
  -p 8000:8000 \
  -v /data/models:/models \
  vllm/vllm-openai:latest \
  --model /models/deepseek/DeepSeek-R1-Distill-Qwen-7B \
  --served-model-name deepseek-r1-7b \
  --host 0.0.0.0 \
  --port 8000

查看日志:

docker logs -f deepseek-vllm

如果日志中出现 API server started,说明服务已经启动。


3. 测试 OpenAI 兼容接口

查看模型列表:

curl http://localhost:8000/v1/models

调用聊天接口:

curl http://localhost:8000/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "deepseek-r1-7b",
    "messages": [
      {
        "role": "system",
        "content": "你是企业内部AI助手,请用简洁、专业的中文回答。"
      },
      {
        "role": "user",
        "content": "请说明Docker部署DeepSeek的优势。"
      }
    ],
    "temperature": 0.6,
    "max_tokens": 800
  }'

由于接口兼容 OpenAI 格式,企业现有应用如果已经接入 OpenAI SDK,通常只需要修改:

  • base_url
  • model
  • api_key

即可完成迁移。


4. 使用 Docker Compose 部署 vLLM

创建目录:

mkdir -p /opt/deepseek-vllm
cd /opt/deepseek-vllm

创建 docker-compose.yml

services:
  deepseek-vllm:
    image: vllm/vllm-openai:latest
    container_name: deepseek-vllm
    restart: unless-stopped
    ports:
      - "8000:8000"
    volumes:
      - /data/models:/models
    ipc: host
    command:
      - --model
      - /models/deepseek/DeepSeek-R1-Distill-Qwen-7B
      - --served-model-name
      - deepseek-r1-7b
      - --host
      - 0.0.0.0
      - --port
      - "8000"
      - --max-model-len
      - "8192"
      - --gpu-memory-utilization
      - "0.90"
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [gpu]

启动:

docker compose up -d

查看状态:

docker compose ps

查看日志:

docker compose logs -f

九、企业生产环境推荐架构

企业部署 DeepSeek 时,不建议直接将模型服务暴露给所有用户。推荐采用如下架构:

用户 / 内部系统
      |
      v
统一认证网关 / API Gateway
      |
      v
业务服务层
      |
      v
大模型代理服务
      |
      v
DeepSeek 推理服务集群
      |
      v
模型文件存储 / 日志监控 / 权限审计

推荐组件

层级 建议组件
网关层 Nginx、Kong、Traefik、APISIX
鉴权层 JWT、OAuth2、LDAP、企业 SSO
应用层 Java、Go、Python、Node.js
推理层 Ollama、vLLM、SGLang、TensorRT-LLM
监控层 Prometheus、Grafana、Loki、ELK
日志审计 OpenTelemetry、Filebeat、Fluent Bit
存储层 NAS、MinIO、对象存储、内部模型仓库

十、使用 Nginx 做反向代理

生产环境中,建议使用 Nginx 做反向代理,并增加访问控制。

安装 Nginx:

sudo apt install -y nginx

创建配置:

server {
    listen 80;
    server_name deepseek.example.com;

    client_max_body_size 50m;

    location / {
        proxy_pass http://127.0.0.1:8000;

        proxy_http_version 1.1;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        proxy_read_timeout 600s;
        proxy_connect_timeout 60s;
        proxy_send_timeout 600s;
    }
}

启用配置后重载:

sudo nginx -t
sudo systemctl reload nginx

如果需要 HTTPS,可以使用企业内部证书或 Let’s Encrypt 证书。


十一、接口安全建议

企业部署 DeepSeek 时,安全问题非常重要。至少需要考虑以下几点。

1. 不要直接暴露公网

模型接口如果直接暴露到公网,可能会被恶意调用,导致:

  • GPU 资源被耗尽
  • 服务成本不可控
  • 敏感数据泄露
  • 被用于违规内容生成
  • 接口被扫描攻击

建议仅在内网访问,或通过 VPN、零信任网关、堡垒机访问。

2. 增加 API Key 鉴权

可以在业务代理层或网关层增加 API Key 校验,避免任何人都能直接调用模型。

3. 增加限流策略

建议按用户、部门、应用设置限流,例如:

  • 每分钟请求数
  • 每日 Token 用量
  • 单次最大输入长度
  • 单次最大输出长度
  • 并发请求上限

4. 做好日志脱敏

模型请求中可能包含敏感内容,例如客户姓名、手机号、身份证号、合同金额、代码仓库地址等。

日志系统应避免完整记录原始 Prompt,或至少进行脱敏处理。

5. 建立内容安全机制

企业内部使用也需要做好内容安全,例如:

  • 禁止输出敏感业务数据
  • 禁止越权访问知识库
  • 防止 Prompt Injection
  • 防止模型泄露系统提示词
  • 对关键场景增加人工审核

十二、性能优化建议

1. 根据显存选择模型大小

模型越大,效果通常越好,但部署成本越高。企业不应盲目追求最大模型,而应根据场景选择。

例如:

  • FAQ 问答:7B 或 14B 可能已经足够
  • 代码生成:可选择 DeepSeek Coder 或更强代码模型
  • 复杂推理:可选择 R1 系列蒸馏模型或更大模型
  • 高并发客服:优先考虑吞吐与延迟,而不是单次回答质量极限

2. 使用量化模型

量化可以降低显存占用,提高部署可行性。常见量化方式包括:

  • INT8
  • INT4
  • AWQ
  • GPTQ
  • GGUF

需要注意的是,量化可能会带来一定精度损失。企业应通过真实业务测试评估效果。

3. 控制上下文长度

上下文长度越大,显存占用和推理延迟越高。生产环境建议合理设置:

--max-model-len 8192

如果业务确实需要长文本分析,再考虑扩展到 16K、32K 或更长上下文。

4. 设置 GPU 显存利用率

vLLM 支持配置 GPU 显存利用率:

--gpu-memory-utilization 0.90

如果服务器还运行其他 GPU 程序,可以降低该参数,例如:

--gpu-memory-utilization 0.75

5. 使用多实例或多卡部署

如果并发较高,可以采用:

  • 单机多 GPU
  • 多机多实例
  • 前置负载均衡
  • 按业务拆分模型实例
  • 热点业务独立部署

十三、监控与运维建议

企业上线后,需要持续监控服务状态。建议关注以下指标:

系统指标

  • CPU 使用率
  • 内存使用率
  • 磁盘空间
  • 网络流量
  • 容器状态

GPU 指标

  • GPU 利用率
  • 显存使用量
  • GPU 温度
  • 功耗
  • ECC 错误

模型服务指标

  • 请求数
  • 平均响应时间
  • P95 / P99 延迟
  • 错误率
  • Token 输入输出量
  • 并发请求数
  • 队列等待时间

可以使用以下命令临时排查:

docker stats

查看 GPU:

watch -n 1 nvidia-smi

查看容器日志:

docker logs -f deepseek-vllm

如果使用 Docker Compose:

docker compose logs -f

十四、常见问题排查

1. 容器无法使用 GPU

检查宿主机:

nvidia-smi

检查 Docker GPU 支持:

docker run --rm --gpus all nvidia/cuda:12.3.0-base-ubuntu22.04 nvidia-smi

如果失败,通常是 NVIDIA Container Toolkit 未安装或 Docker runtime 未配置。


2. 模型启动时报显存不足

解决方案:

  • 换用更小参数模型
  • 使用量化模型
  • 降低上下文长度
  • 降低并发
  • 使用多卡
  • 减少其他 GPU 进程

3. 接口响应很慢

可能原因包括:

  • 模型过大
  • GPU 性能不足
  • 上下文太长
  • 并发过高
  • 采样参数设置不合理
  • 使用 CPU 推理

建议优先观察 GPU 利用率和显存情况。


4. Docker 容器启动后立即退出

查看日志:

docker logs 容器名

常见原因:

  • 模型路径错误
  • 权限不足
  • 镜像版本不兼容
  • CUDA 版本不匹配
  • 启动参数错误

5. 企业应用无法访问模型服务

检查以下内容:

  • 容器是否运行
  • 端口是否映射
  • 防火墙是否放行
  • Nginx 配置是否正确
  • 服务是否监听 0.0.0.0
  • 内网 DNS 是否正确

十五、企业落地建议

对于企业来说,部署 DeepSeek 不只是把模型跑起来,更重要的是把它变成稳定、安全、可治理的内部能力。

建议分阶段推进:

第一阶段:验证阶段

目标是快速跑通模型能力。

推荐:

  • 使用 Ollama
  • 选择 1.5B / 7B 模型
  • 接入简单 Web UI 或内部机器人
  • 收集用户反馈
  • 验证业务场景价值

第二阶段:试点阶段

目标是面向部分部门提供服务。

推荐:

  • 使用 vLLM
  • 接入企业知识库
  • 增加 API Key
  • 增加日志和监控
  • 做权限控制
  • 评估模型效果和成本

第三阶段:生产阶段

目标是形成企业级 AI 基础设施。

推荐:

  • 多实例部署
  • 统一网关
  • 统一鉴权
  • 统一监控
  • 成本核算
  • 数据脱敏
  • 安全审计
  • 模型版本管理
  • 灰度发布机制

十六、总结

本文介绍了企业用户使用 Docker 部署 DeepSeek 的完整思路,并分别给出了 Ollama 和 vLLM 两种部署方式。

如果只是快速试用或内部 Demo,推荐使用:

Docker + Ollama

它简单、易用、部署成本低,非常适合模型验证阶段。

如果面向生产环境,推荐使用:

Docker + vLLM + Nginx + 监控系统 + 鉴权网关

这种架构更适合企业级高并发、标准化接口和系统集成。

企业在部署 DeepSeek 时,除了关注模型效果,也要重点关注安全、权限、成本、监控和运维。只有将模型服务纳入企业现有 IT 治理体系,才能真正把大模型能力稳定地应用到业务流程中。

目录结构
全文