DeepSeek 本地部署实战:用 Docker 快速跑通 Ollama 与 WebUI
DeepSeek Docker部署教程|附完整命令
DeepSeek 作为近期开源大模型生态中非常受关注的一类模型,已经被广泛用于本地知识问答、代码辅助、推理任务、企业内部智能助手等场景。相比直接在本机安装 Python、CUDA、依赖库等方式,使用 Docker 部署 DeepSeek 更加简单、干净、可迁移,也更适合服务器环境和团队统一交付。
本文将从零开始介绍如何使用 Docker 部署 DeepSeek,包含 CPU 部署、GPU 部署、Ollama 方式部署、Open WebUI 可视化界面部署、Docker Compose 一键部署 等内容,并提供完整可复制命令。
一、部署方式说明
目前本地部署 DeepSeek 常见方式主要有以下几种:
| 部署方式 | 特点 | 适合人群 |
|---|---|---|
| Ollama + Docker | 部署简单,命令少,适合快速体验 | 个人开发者、测试环境 |
| Ollama + Open WebUI | 带网页聊天界面,使用体验好 | 普通用户、团队内部使用 |
| vLLM 部署 | 性能更强,适合 API 服务 | 企业部署、高并发场景 |
| llama.cpp 部署 | 资源占用较低,适合量化模型 | 低配置机器、CPU 推理 |
本文重点介绍最容易上手、成功率最高的方案:
Docker + Ollama + DeepSeek + Open WebUI
这种方式可以快速在本地或服务器上运行 DeepSeek,并通过浏览器访问聊天界面。
二、服务器配置建议
DeepSeek 模型有多个版本,不同模型对硬件要求不同。部署前建议先确认机器配置。
1. CPU 部署
如果只是体验,可以使用 CPU 部署,但推理速度会比较慢。
建议配置:
CPU:4 核以上
内存:16GB 以上
磁盘:30GB 以上
系统:Ubuntu 20.04 / 22.04 / 24.04
适合运行较小模型,例如:
deepseek-r1:1.5b
deepseek-r1:7b
2. GPU 部署
如果希望推理速度更快,建议使用 NVIDIA GPU。
建议配置:
显卡:NVIDIA GPU
显存:8GB 以上,推荐 16GB / 24GB
内存:32GB 以上
磁盘:50GB 以上
驱动:已安装 NVIDIA Driver
Docker:支持 NVIDIA Container Toolkit
常见模型显存参考:
| 模型 | 推荐显存 |
|---|---|
| deepseek-r1:1.5b | 4GB 左右 |
| deepseek-r1:7b | 8GB 左右 |
| deepseek-r1:8b | 8GB~12GB |
| deepseek-r1:14b | 16GB 左右 |
| deepseek-r1:32b | 24GB 以上 |
| deepseek-r1:70b | 多卡或高显存 |
注意:实际显存占用会受到量化方式、上下文长度、并发数量等因素影响。
三、安装 Docker
以下命令以 Ubuntu 系统为例。
1. 更新软件源
sudo apt update
sudo apt upgrade -y
2. 安装必要依赖
sudo apt install -y ca-certificates curl gnupg lsb-release
3. 添加 Docker GPG 密钥
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
| sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
4. 添加 Docker 软件源
echo \
"deb [arch=$(dpkg --print-architecture) \
signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" \
| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
5. 安装 Docker
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
6. 启动 Docker 并设置开机自启
sudo systemctl start docker
sudo systemctl enable docker
7. 验证 Docker 是否安装成功
docker version
也可以运行测试容器:
sudo docker run hello-world
如果看到类似 Hello from Docker! 的输出,说明 Docker 安装成功。
四、可选:配置当前用户免 sudo 使用 Docker
默认情况下,普通用户执行 Docker 命令可能需要加 sudo。可以将当前用户加入 docker 用户组。
sudo usermod -aG docker $USER
然后重新登录服务器,或者执行:
newgrp docker
验证:
docker ps
如果不报权限错误,说明配置成功。
五、GPU 环境准备
如果你只使用 CPU,可以跳过本章节。
1. 查看 NVIDIA 驱动
nvidia-smi
如果能看到显卡信息,说明 NVIDIA 驱动已经安装。
示例输出:
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 535.xx Driver Version: 535.xx CUDA Version: 12.x |
| GPU Name Memory-Usage |
+-----------------------------------------------------------------------------+
如果提示 command not found 或无法识别显卡,需要先安装 NVIDIA 驱动。
六、安装 NVIDIA Container Toolkit
Docker 默认不能直接调用 GPU,需要安装 NVIDIA Container Toolkit。
1. 添加 NVIDIA 软件源
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
2. 安装工具包
sudo apt update
sudo apt install -y nvidia-container-toolkit
3. 配置 Docker 使用 NVIDIA Runtime
sudo nvidia-ctk runtime configure --runtime=docker
4. 重启 Docker
sudo systemctl restart docker
5. 测试 Docker 是否能调用 GPU
docker run --rm --gpus all nvidia/cuda:12.4.1-base-ubuntu22.04 nvidia-smi
如果容器内能正常输出显卡信息,说明 GPU 容器环境配置成功。
七、方式一:使用 Docker 部署 Ollama
Ollama 是一个非常方便的大模型本地运行工具,可以快速下载和运行 DeepSeek 模型。通过 Docker 部署 Ollama,可以避免污染宿主机环境。
八、CPU 方式启动 Ollama
如果你没有 NVIDIA GPU,可以使用以下命令启动 Ollama:
docker run -d \
--name ollama \
-p 11434:11434 \
-v ollama:/root/.ollama \
--restart always \
ollama/ollama
参数说明:
-d:后台运行容器
--name ollama:容器名称为 ollama
-p 11434:11434:映射 Ollama API 端口
-v ollama:/root/.ollama:持久化模型文件
--restart always:容器异常退出或服务器重启后自动启动
ollama/ollama:使用 Ollama 官方镜像
查看容器状态:
docker ps
查看日志:
docker logs -f ollama
九、GPU 方式启动 Ollama
如果你已经配置好 NVIDIA Container Toolkit,可以使用 GPU 启动 Ollama:
docker run -d \
--gpus all \
--name ollama \
-p 11434:11434 \
-v ollama:/root/.ollama \
--restart always \
ollama/ollama
如果你之前已经创建过同名容器,需要先删除:
docker stop ollama
docker rm ollama
然后再执行 GPU 启动命令。
十、下载 DeepSeek 模型
Ollama 容器启动后,可以进入容器下载模型。
docker exec -it ollama bash
进入容器后执行:
ollama pull deepseek-r1:1.5b
如果想下载 7B 模型:
ollama pull deepseek-r1:7b
如果机器配置较高,可以下载更大的模型:
ollama pull deepseek-r1:8b
ollama pull deepseek-r1:14b
ollama pull deepseek-r1:32b
查看已下载模型:
ollama list
退出容器:
exit
也可以不进入容器,直接在宿主机执行:
docker exec -it ollama ollama pull deepseek-r1:7b
十一、运行 DeepSeek 模型
使用以下命令运行 DeepSeek:
docker exec -it ollama ollama run deepseek-r1:7b
然后你可以直接在命令行中提问,例如:
请用 Python 写一个快速排序算法
或者:
解释一下 Docker 的镜像和容器有什么区别
如果要退出对话,可以输入:
/bye
十二、通过 API 调用 DeepSeek
Ollama 默认会暴露 HTTP API,端口为 11434。
如果是在服务器本机调用:
curl http://localhost:11434/api/generate \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-r1:7b",
"prompt": "请解释一下什么是大语言模型",
"stream": false
}'
如果你在远程电脑访问服务器,需要将 localhost 替换为服务器 IP:
curl http://服务器IP:11434/api/generate \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-r1:7b",
"prompt": "请写一段 Nginx 反向代理配置",
"stream": false
}'
流式输出示例:
curl http://localhost:11434/api/generate \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-r1:7b",
"prompt": "请介绍一下 Kubernetes 的核心组件",
"stream": true
}'
十三、部署 Open WebUI 可视化界面
命令行使用 DeepSeek 对开发者来说很方便,但如果想让团队成员像使用 ChatGPT 一样通过浏览器访问,就可以部署 Open WebUI。
Open WebUI 是一个常用的大模型 Web 管理界面,支持对接 Ollama。
十四、Docker 启动 Open WebUI
确保 Ollama 容器已经正常运行,然后执行:
docker run -d \
--name open-webui \
-p 3000:8080 \
-e OLLAMA_BASE_URL=http://host.docker.internal:11434 \
-v open-webui:/app/backend/data \
--add-host=host.docker.internal:host-gateway \
--restart always \
ghcr.io/open-webui/open-webui:main
参数说明:
-p 3000:8080:将容器内 8080 端口映射到宿主机 3000 端口
-e OLLAMA_BASE_URL:指定 Ollama API 地址
-v open-webui:/app/backend/data:持久化 WebUI 数据
--add-host=host.docker.internal:host-gateway:让容器访问宿主机服务
启动完成后,浏览器访问:
http://服务器IP:3000
如果是本机部署,可以访问:
http://localhost:3000
第一次打开时需要注册管理员账号。注册完成后,在模型列表中选择已经下载好的 DeepSeek 模型即可开始聊天。
十五、推荐方式:Docker Compose 一键部署
如果不想分别执行多个 docker run 命令,推荐使用 Docker Compose 管理 Ollama 和 Open WebUI。
1. 创建项目目录
mkdir -p ~/deepseek-docker
cd ~/deepseek-docker
2. 创建 docker-compose.yml
vim docker-compose.yml
写入以下内容。
CPU 版本 Compose
services:
ollama:
image: ollama/ollama
container_name: ollama
ports:
- "11434:11434"
volumes:
- ollama:/root/.ollama
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
depends_on:
- ollama
restart: always
volumes:
ollama:
open-webui:
GPU 版本 Compose
如果需要 GPU,请使用以下配置:
services:
ollama:
image: ollama/ollama
container_name: ollama
ports:
- "11434:11434"
volumes:
- ollama:/root/.ollama
restart: always
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
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
depends_on:
- ollama
restart: always
volumes:
ollama:
open-webui:
如果你的 Docker Compose 环境不支持
deploy.resources.reservations.devices,可以改用前文的docker run --gpus all方式启动 Ollama。
3. 启动服务
docker compose up -d
查看服务状态:
docker compose ps
查看日志:
docker compose logs -f
十六、使用 Compose 下载 DeepSeek 模型
服务启动后,执行:
docker exec -it ollama ollama pull deepseek-r1:7b
也可以选择更小的模型:
docker exec -it ollama ollama pull deepseek-r1:1.5b
下载完成后查看模型:
docker exec -it ollama ollama list
测试运行:
docker exec -it ollama ollama run deepseek-r1:7b
浏览器访问:
http://服务器IP:3000
即可通过 Web 界面使用 DeepSeek。
十七、常用运维命令
1. 查看容器
docker ps
查看所有容器,包括已停止的容器:
docker ps -a
2. 查看 Ollama 日志
docker logs -f ollama
3. 查看 Open WebUI 日志
docker logs -f open-webui
4. 重启服务
docker restart ollama
docker restart open-webui
如果使用 Compose:
docker compose restart
5. 停止服务
docker stop ollama open-webui
Compose 方式:
docker compose down
6. 删除容器
docker rm ollama open-webui
7. 删除镜像
docker rmi ollama/ollama
docker rmi ghcr.io/open-webui/open-webui:main
8. 查看 Docker 卷
docker volume ls
9. 删除数据卷
如果你确认不再需要模型和 WebUI 数据,可以删除数据卷:
docker volume rm ollama
docker volume rm open-webui
使用 Compose 创建的数据卷名称可能会带项目前缀,例如:
docker volume ls
再根据实际名称删除。
十八、修改模型存储路径
默认使用 Docker Volume 存储模型文件。如果你希望将模型保存到指定磁盘目录,例如 /data/ollama,可以这样启动:
mkdir -p /data/ollama
CPU 版本:
docker run -d \
--name ollama \
-p 11434:11434 \
-v /data/ollama:/root/.ollama \
--restart always \
ollama/ollama
GPU 版本:
docker run -d \
--gpus all \
--name ollama \
-p 11434:11434 \
-v /data/ollama:/root/.ollama \
--restart always \
ollama/ollama
这样模型文件会保存到宿主机的:
/data/ollama
便于备份、迁移和扩容。
十九、配置防火墙
如果你在云服务器上部署,需要放行端口。
常用端口:
11434:Ollama API 端口
3000:Open WebUI 页面端口
如果使用 UFW:
sudo ufw allow 3000/tcp
sudo ufw allow 11434/tcp
sudo ufw reload
查看防火墙状态:
sudo ufw status
安全建议:不建议直接将
11434暴露到公网。生产环境中最好只开放 WebUI 端口,并通过 Nginx、HTTPS、账号权限、内网访问等方式进行保护。
二十、使用 Nginx 反向代理 Open WebUI
如果希望通过域名访问,例如:
https://ai.example.com
可以使用 Nginx 反向代理。
1. 安装 Nginx
sudo apt install -y nginx
2. 新建配置文件
sudo vim /etc/nginx/conf.d/open-webui.conf
写入:
server {
listen 80;
server_name ai.example.com;
client_max_body_size 100M;
location / {
proxy_pass http://127.0.0.1:3000;
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_set_header X-Forwarded-Proto $scheme;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 3600;
proxy_send_timeout 3600;
}
}
3. 检查配置
sudo nginx -t
4. 重载 Nginx
sudo systemctl reload nginx
然后访问:
http://ai.example.com
如果需要 HTTPS,可以配合 Certbot 申请免费证书。
二十一、配置 HTTPS 证书
安装 Certbot:
sudo apt install -y certbot python3-certbot-nginx
申请证书:
sudo certbot --nginx -d ai.example.com
按提示输入邮箱并确认,证书申请成功后,Certbot 会自动修改 Nginx 配置。
测试自动续期:
sudo certbot renew --dry-run
二十二、常见问题排查
1. Open WebUI 无法连接 Ollama
先检查 Ollama 是否正常:
docker ps
docker logs -f ollama
测试 API:
curl http://localhost:11434/api/tags
如果使用 Compose,Open WebUI 连接地址应为:
http://ollama:11434
如果使用单独 docker run 方式,连接宿主机 Ollama 时通常使用:
http://host.docker.internal:11434
并需要添加:
--add-host=host.docker.internal:host-gateway
2. 模型下载很慢
模型文件通常比较大,下载慢是正常现象。可以考虑:
- 使用网络更好的服务器;
- 选择更小模型,例如
deepseek-r1:1.5b; - 避免在高峰期下载;
- 提前下载后迁移模型目录。
3. GPU 没有被调用
检查宿主机:
nvidia-smi
检查容器 GPU:
docker run --rm --gpus all nvidia/cuda:12.4.1-base-ubuntu22.04 nvidia-smi
检查 Ollama 是否用 GPU 启动:
docker inspect ollama | grep -i nvidia
如果没有 GPU 配置,重新创建容器:
docker stop ollama
docker rm ollama
docker run -d \
--gpus all \
--name ollama \
-p 11434:11434 \
-v ollama:/root/.ollama \
--restart always \
ollama/ollama
4. 显存不足
如果运行模型时报显存不足,可以尝试:
- 换用更小模型;
- 降低上下文长度;
- 停止其他占用 GPU 的程序;
- 使用量化模型;
- 使用 CPU 运行,但速度会变慢。
查看 GPU 占用:
nvidia-smi
5. 端口被占用
如果启动时报错:
port is already allocated
说明端口已经被其他程序占用。
查看端口占用:
sudo lsof -i:3000
sudo lsof -i:11434
或:
sudo ss -lntp | grep 3000
sudo ss -lntp | grep 11434
解决方式:
- 停止占用端口的程序;
- 修改 Docker 端口映射。
例如将 WebUI 映射到 8080:
docker run -d \
--name open-webui \
-p 8080:8080 \
-e OLLAMA_BASE_URL=http://host.docker.internal:11434 \
-v open-webui:/app/backend/data \
--add-host=host.docker.internal:host-gateway \
--restart always \
ghcr.io/open-webui/open-webui:main
访问:
http://服务器IP:8080
二十三、升级服务
1. 升级 Ollama
docker pull ollama/ollama
docker stop ollama
docker rm ollama
然后使用原来的启动命令重新启动。
CPU:
docker run -d \
--name ollama \
-p 11434:11434 \
-v ollama:/root/.ollama \
--restart always \
ollama/ollama
GPU:
docker run -d \
--gpus all \
--name ollama \
-p 11434:11434 \
-v ollama:/root/.ollama \
--restart always \
ollama/ollama
由于模型数据保存在 volume 中,重新创建容器不会删除已下载模型。
2. 升级 Open WebUI
docker pull ghcr.io/open-webui/open-webui:main
docker stop open-webui
docker rm open-webui
重新启动:
docker run -d \
--name open-webui \
-p 3000:8080 \
-e OLLAMA_BASE_URL=http://host.docker.internal:11434 \
-v open-webui:/app/backend/data \
--add-host=host.docker.internal:host-gateway \
--restart always \
ghcr.io/open-webui/open-webui:main
3. Compose 方式升级
如果你使用 Docker Compose,则更简单:
docker compose pull
docker compose up -d
二十四、完整快速部署命令汇总
如果你的服务器已经安装 Docker,并且只想快速部署,可以直接使用下面命令。
CPU 快速部署
mkdir -p ~/deepseek-docker
cd ~/deepseek-docker
cat > docker-compose.yml <<'EOF'
services:
ollama:
image: ollama/ollama
container_name: ollama
ports:
- "11434:11434"
volumes:
- ollama:/root/.ollama
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
depends_on:
- ollama
restart: always
volumes:
ollama:
open-webui:
EOF
docker compose up -d
docker exec -it ollama ollama pull deepseek-r1:7b
访问:
http://服务器IP:3000
GPU 快速部署
mkdir -p ~/deepseek-docker
cd ~/deepseek-docker
cat > docker-compose.yml <<'EOF'
services:
ollama:
image: ollama/ollama
container_name: ollama
ports:
- "11434:11434"
volumes:
- ollama:/root/.ollama
restart: always
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
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
depends_on:
- ollama
restart: always
volumes:
ollama:
open-webui:
EOF
docker compose up -d
docker exec -it ollama ollama pull deepseek-r1:7b
访问:
http://服务器IP:3000
二十五、总结
使用 Docker 部署 DeepSeek 的核心思路非常清晰:
- 安装 Docker;
- 如果使用 GPU,安装 NVIDIA Container Toolkit;
- 启动 Ollama 容器;
- 下载 DeepSeek 模型;
- 可选部署 Open WebUI;
- 通过浏览器或 API 使用模型。
对于个人用户,推荐使用:
Docker + Ollama + Open WebUI
对于企业环境,建议进一步增加:
- Nginx 反向代理;
- HTTPS 证书;
- 账号权限控制;
- 内网访问限制;
- 日志与监控;
- 数据备份;
- GPU 资源隔离。
如果只是快速体验,使用 deepseek-r1:1.5b 或 deepseek-r1:7b 即可;如果追求更好的推理效果,可以根据显存情况选择 14b、32b 或更大模型。
通过本文提供的命令,你可以在较短时间内完成 DeepSeek 的 Docker 本地化部署,并搭建出一个可供浏览器访问的 AI 对话系统。