企业内网部署 DeepSeek:从 Docker 快速试用到生产级落地指南
DeepSeek Docker部署教程|适合企业用户
随着大模型在企业知识问答、代码辅助、智能客服、数据分析、办公自动化等场景中的落地,越来越多企业开始关注私有化部署大模型。相比直接调用公有云 API,本地或私有云部署 DeepSeek 具备数据可控、权限可管、成本可预测、系统可集成等优势。
本文将面向企业用户,介绍如何使用 Docker 部署 DeepSeek 相关模型服务,并提供两种常见方案:
- Ollama + Docker:适合快速验证、轻量部署、内部试用
- 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_urlmodelapi_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 治理体系,才能真正把大模型能力稳定地应用到业务流程中。