DeepChat部署教程:WSL2+Docker Desktop环境下DeepChat服务开机自启配置
1. 为什么需要DeepChat这样的本地对话服务
你有没有遇到过这些情况:想和AI深入聊一个专业问题,却担心输入的内容被上传到云端;想在公司内网部署一个智能助手,但又怕模型太大、环境太复杂;或者只是单纯想拥有一个完全属于自己的、不依赖网络的AI对话空间?
DeepChat就是为解决这些问题而生的——它不是一个挂在远程服务器上的网页应用,而是一个真正运行在你电脑本地的深度对话引擎。它不调用任何外部API,不联网传输你的提问,所有推理都在你的机器上完成。这意味着,你输入的每一句话、提出的每一个问题,都只存在于你的硬盘里。
更关键的是,它不是简单的“本地跑个模型”,而是把整个体验做成了开箱即用的状态:不用手动装Ollama、不用查命令下载模型、不用改配置文件、甚至不用记端口号。你只需要一次启动,之后每次开机,它就自动准备好,等你来对话。
这背后的技术组合其实很精巧:用Docker封装了Ollama服务 + llama3:8b模型 + DeepChat前端三件套,再通过一套智能启动脚本把它们拧成一股绳。而今天我们要做的,就是在Windows系统下,用WSL2和Docker Desktop这个最平滑、最稳定的组合,把它真正变成你电脑的“常驻服务”。
2. 环境准备:WSL2 + Docker Desktop双剑合璧
在Windows上跑容器化AI服务,WSL2(Windows Subsystem for Linux 2)加Docker Desktop是目前最成熟、兼容性最好、资源占用最合理的方案。它既避开了传统虚拟机的性能损耗,又绕过了原生Docker for Windows对Hyper-V的强依赖,还能完美支持GPU直通(如果你有NVIDIA显卡,后续可轻松启用)。
2.1 检查并启用WSL2
打开PowerShell(以管理员身份运行),依次执行以下命令:
# 启用WSL功能 dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart重启电脑后,下载并安装 WSL2 Linux内核更新包,然后设置WSL2为默认版本:
wsl --set-default-version 2最后,从Microsoft Store安装一个Linux发行版(推荐Ubuntu 22.04 LTS),安装完成后在终端中运行:
wsl -l -v确认你的发行版显示为WLS2状态,且版本号大于5.10。
2.2 安装并配置Docker Desktop
前往 Docker官网 下载最新版Docker Desktop for Windows。安装时务必勾选“Use the WSL 2 based engine”选项。
安装完成后,打开Docker Desktop,在设置(Settings)→ General 中,确保“Use the WSL 2 based engine”已开启;在 Resources → WSL Integration 中,启用你安装的Ubuntu发行版。
验证是否成功:
# 在WSL2终端中执行 docker --version docker run hello-world如果看到欢迎信息,说明Docker已成功接入WSL2环境。
2.3 验证网络与端口可用性
DeepChat默认使用3000端口提供Web界面,Ollama服务默认监听11434端口。我们需要确保这两个端口在Windows宿主机上是空闲的。
在PowerShell中运行:
netstat -ano | findstr :3000 netstat -ano | findstr :11434如果返回结果为空,说明端口可用。如有占用,可临时关闭对应进程,或在后续启动命令中通过-p 3001:3000等方式映射到其他端口。
3. 一键部署DeepChat:拉取镜像与首次启动
DeepChat镜像已预构建并托管在Docker Hub上,无需自己编译。我们直接拉取并运行即可。
3.1 拉取并启动容器
在WSL2终端中(不是PowerShell!),执行以下命令:
# 创建专用目录(便于管理) mkdir -p ~/deepchat && cd ~/deepchat # 拉取并启动DeepChat容器(后台运行) docker run -d \ --name deepchat \ --restart unless-stopped \ -p 3000:3000 \ -p 11434:11434 \ -v $(pwd)/ollama:/root/.ollama \ -v $(pwd)/data:/app/data \ --gpus all \ --shm-size=2g \ --network host \ ghcr.io/your-repo/deepchat:latest参数说明(人话版):
-d:后台运行,别占着终端;--restart unless-stopped:这是实现“开机自启”的关键前提——告诉Docker,只要没手动停掉,就永远自动重启;-p 3000:3000:把容器里的3000端口,映射到你电脑的3000端口,这样你才能在浏览器里访问;-v $(pwd)/ollama:/root/.ollama:把模型文件存在你电脑的~/deepchat/ollama文件夹里,下次重装系统也不丢模型;--gpus all:如果你有NVIDIA显卡,这行会自动启用GPU加速,推理快3倍以上;--network host:让容器直接用宿主机的网络,避免Docker内部网络带来的延迟和端口转发问题。
3.2 首次启动:耐心等待模型下载
第一次运行时,容器会自动执行初始化脚本,包括:
- 检查Ollama服务是否已安装,没有就自动安装;
- 检查
llama3:8b模型是否存在,不存在就从Ollama官方源下载(约4.7GB); - 自动解决端口冲突(比如发现3000被占,就悄悄换到3001);
- 最后启动DeepChat WebUI。
你可以在终端中实时查看进度:
docker logs -f deepchat你会看到类似这样的输出:
Ollama service is running on http://localhost:11434 ⏳ Pulling model 'llama3:8b'... (this may take 5-15 minutes) ✔ Model 'llama3:8b' downloaded successfully Starting DeepChat WebUI on port 3000...当看到Starting DeepChat WebUI这行日志后,就可以按Ctrl+C退出日志跟踪了。
3.3 访问DeepChat界面
打开Windows系统的浏览器,访问:
http://localhost:3000你会看到一个极简、无广告、无追踪的聊天界面,顶部写着“DeepChat”。在输入框里试试:
Explain quantum computing like I'm 10Write a Python function to merge two sorted listsWhat's the difference between TCP and UDP?
按下回车,几秒内就会开始逐字输出回答——这就是你本地的Llama 3在实时思考。
4. 真正的开机自启:让DeepChat成为Windows的“隐形服务”
上面的--restart unless-stopped只保证容器在Docker重启后自动恢复,但Windows开机时,Docker Desktop默认是不自动启动的。所以我们需要两步走:让Docker Desktop开机自启 + 让DeepChat容器在Docker启动后自动运行。
4.1 设置Docker Desktop开机自启
- 打开Docker Desktop;
- 点击右上角齿轮图标进入 Settings;
- 左侧选择General;
- 勾选“Start Docker Desktop when you log in”;
- 点击Apply & Restart。
这样,每次你登录Windows账户,Docker Desktop就会自动启动。
4.2 创建Windows计划任务:触发容器启动
Docker Desktop启动后,需要一个“信号”来唤醒DeepChat容器。我们用Windows自带的“任务计划程序”来完成。
步骤如下:
- 按
Win + R,输入taskschd.msc,回车打开任务计划程序; - 右侧点击“创建基本任务…”;
- 名称填
Start DeepChat Container,描述可写“确保DeepChat服务随Docker启动”; - 触发器选“当特定事件被记录时”→ 日志选
Application→ 来源选Docker Desktop→ 事件ID填1000(代表Docker Desktop成功启动); - 操作选“启动程序”→ 程序或脚本填
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe; - 添加参数(重要!)填入:
-Command "wsl -d Ubuntu-22.04 -e sh -c 'docker start deepchat 2>/dev/null || true'"注意:
Ubuntu-22.04是你WSL2发行版的名称,可通过wsl -l -v查看并替换。如果叫Ubuntu,就写Ubuntu。
- 完成后,勾选“即使用户未登录也要运行”和“不存储密码”(因为WSL2不需要密码);
- 点击完成。
现在,每次Docker Desktop启动完成,系统就会自动执行docker start deepchat。即使你之前手动停止过容器,它也会被重新拉起。
4.3 验证开机自启是否生效
你可以手动模拟一次测试:
- 在PowerShell中运行
Stop-Service "Docker Desktop"(或直接退出Docker Desktop); - 再运行
Start-Service "Docker Desktop"; - 等待10秒,执行
wsl -d Ubuntu-22.04 -e docker ps; - 如果看到
deepchat容器状态为Up,说明任务已成功触发。
5. 日常维护与实用技巧
部署完成只是开始,日常用起来顺不顺畅,才是关键。这里分享几个真实踩坑后总结的实用技巧。
5.1 模型管理:换模型、删模型、查状态
DeepChat默认用llama3:8b,但你完全可以换成别的。比如想试试更小更快的phi3:mini,或更强的llama3:70b(需128GB内存):
# 进入容器执行Ollama命令(无需退出容器) docker exec -it deepchat ollama list docker exec -it deepchat ollama run phi3:mini # 或者在WSL2中直接操作(推荐) wsl -d Ubuntu-22.04 -e sh -c "ollama list" wsl -d Ubuntu-22.04 -e sh -c "ollama run gemma2:2b"删除不用的模型也很简单:
wsl -d Ubuntu-22.04 -e sh -c "ollama rm llama3:8b"所有模型文件都存放在~/deepchat/ollama目录下,删了就真没了,不占额外空间。
5.2 性能调优:让Llama 3跑得更快
如果你发现响应有点慢,大概率是没启用GPU。检查方法:
wsl -d Ubuntu-22.04 -e nvidia-smi如果报错,说明NVIDIA驱动没装好;如果正常显示显卡信息,但Ollama没用上GPU,执行:
wsl -d Ubuntu-22.04 -e sh -c "export OLLAMA_NUM_GPU=1; ollama run llama3:8b"更彻底的方案,是在启动容器时加上环境变量:
docker run -d \ --name deepchat \ --restart unless-stopped \ -e OLLAMA_NUM_GPU=1 \ -p 3000:3000 \ -v $(pwd)/ollama:/root/.ollama \ --gpus all \ ghcr.io/your-repo/deepchat:latest5.3 故障排查:常见问题一招解
| 问题现象 | 快速诊断命令 | 解决方案 |
|---|---|---|
浏览器打不开http://localhost:3000 | docker ps | grep deepchat | 容器没运行?执行docker start deepchat |
页面空白,控制台报502 Bad Gateway | docker logs deepchat | tail -20 | Ollama服务没起来?执行docker restart deepchat |
| 输入后没反应,一直转圈 | wsl -d Ubuntu-22.04 -e ollama list | 模型没下载完?等10分钟再试,或手动ollama pull llama3:8b |
提示port 3000 already in use | netstat -ano | findstr :3000 | 关掉占用进程,或启动时加-p 3001:3000 |
记住一个原则:90%的问题,重启容器就能解决。因为启动脚本本身就有自愈能力。
6. 总结:你已经拥有了一个真正的私有AI对话空间
回看整个过程,我们做了什么?
- 在Windows上搭建了一个稳定、高效、可扩展的Linux容器环境(WSL2 + Docker Desktop);
- 用一条命令拉起一个集成了Ollama、Llama 3和DeepChat前端的完整服务;
- 通过Docker的重启策略 + Windows任务计划,实现了真正的“开机即用、断电不丢”;
- 掌握了模型切换、GPU加速、故障排查等核心运维能力。
这不再是一个需要反复调试的实验项目,而是一个可以每天打开浏览器就用的生产力工具。你可以用它:
- 在写技术文档前,先让它帮你梳理逻辑框架;
- 在学习新知识时,让它用不同角度给你解释概念;
- 在处理敏感数据时,确保所有输入都留在自己电脑里;
- 甚至把它部署在公司内网,作为团队专属的AI知识助手。
最重要的是,这一切都不依赖任何云服务、不产生API调用费用、不担心服务停摆——它只属于你。
下一步,你可以尝试:
- 把DeepChat反向代理到域名(如
ai.yourcompany.local); - 用Next.js重写前端,加入多轮对话历史持久化;
- 接入企业微信或飞书机器人,实现消息自动回复。
但此刻,请先打开http://localhost:3000,输入一句:“你好,DeepChat。” 看看那个属于你的AI,如何在本地安静而坚定地回应你。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。