「企业级大模型私有化部署」系列第 2 篇。目标:在腾讯云 4 核 8GB 的 CVM 上,用 Docker 把 Dify 跑起来,完成首次管理员设置,并接一个在线模型验证。
结论:Dify 是应用层,本身不重;真正容易卡住的是 Docker 安装、镜像拉取和首次访问。把这三步做稳,后面接模型才有意义。
一、Dify 能做什么
Dify 是一个综合性的 LLM 应用开发平台,内置了构建生成式 AI 应用所需的大部分技术栈:
- 基于 Agent 架构构建智能体应用;
- 基于 RAG 构建私有知识库应用;
- 基于 Workflow 构建智能工作流应用。
它同时提供图形界面和 API:开发者可以少写「对接不同模型 API、管理对话状态、实现 RAG 流程」这些重复代码,把精力放在业务逻辑上。官网是 https://dify.ai/zh,源码在 GitHub 的 langgenius/dify。访问官网和拉源码都可能受网络影响,后面会讲镜像和 Gitee 的替代方案。
二、租赁腾讯云服务器
Dify 需要的资源不大,一台轻量云服务器就够。这里用腾讯云 CVM,地址是 https://buy.cloud.tencent.com/cvm。
2.1 基础配置
计费方式有三种:包年包月适合长期稳定使用;按量计费适合临时验证;竞价实例最便宜,但可能被平台释放。企业生产环境不要只依赖竞价实例。
地域按用户和业务就近选择;实例配置选 4 核 8GB;镜像选 Ubuntu 22.04 或 24.04。选好后点下一步。

图 1:腾讯云 CVM 选 4 核 8GB;竞价实例更便宜,但可能被释放。

图 2:镜像选 Ubuntu,系统盘 50GB 起步。
2.2 网络、安全组与主机
带宽按需要拉满;安全组新建一个,至少开放:
- 22:SSH 登录;
- 80:Dify 的 HTTP 入口;
- 443:需要 HTTPS 时再开。
不要开放 2375(Docker API)、3306(MySQL)、6379(Redis)到公网。命名实例,设置 root 或 ubuntu 密码,确认开通。
创建完成后,用公网 IP、22 端口、ubuntu 账号和密码登录。XShell、FinalShell 或系统终端都可以。第一次登录可能提示保存主机指纹,输入 yes 继续。
三、安装 Docker
Dify 基于 Docker 部署,腾讯云新建的 Ubuntu 默认没有 Docker。Docker 是容器化技术,比虚拟机轻量:它把应用和依赖打包成容器,在不同环境里运行,减少「环境不一致」的问题。
按下面的命令安装:
sudo apt update
sudo apt upgrade -y
sudo apt install -y software-properties-common ca-certificates curl gnupg lsb-release
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get install -y docker-ce docker-ce-cli containerd.io
sudo systemctl start docker
sudo systemctl status docker
执行 apt upgrade 时可能出现服务重启确认界面,按回车接受默认选项;如果界面卡住,多按几次回车。安装 Docker 时提示输入 y,确认即可。

图 3:systemctl status docker 显示 active (running) 即安装成功。
看到 active (running) 就说明 Docker 起来了。如果启动失败,先看 journalctl -u docker --no-pager,不要急着重装。
四、部署 Dify
4.1 下载源码
在 /opt 下建目录,拉 Dify 源码:
cd /opt
sudo mkdir dify
sudo git clone https://github.com/langgenius/dify.git
cd dify/docker
sudo docker compose up -d
如果提示权限不足,用 sudo 执行。GitHub 下载慢时,有两个办法:
- 用 Gitee 的「导入 GitHub 仓库」功能:注册 Gitee,新建仓库,选择导入,粘贴
https://github.com/langgenius/dify.git,导入完成后 clone 自己的仓库地址; - 用可用的镜像站下载,但要注意版本和完整性。
不要长期依赖别人的仓库,版本和内容都不受你控制。用自己的 Gitee 仓库,至少能确定来源。
4.2 启动容器
进入 dify/docker 目录后执行:
sudo docker compose up -d

图 4:docker compose up -d 会拉取 api、worker、web、db、redis、nginx 等镜像。
如果拉镜像超时,配 Docker 镜像源:
sudo vi /etc/docker/daemon.json
{
"registry-mirrors": [
"https://docker.1ms.run",
"https://docker.xuanyuan.me"
]
}
sudo systemctl daemon-reload
sudo systemctl restart docker
cd /opt/dify/docker
sudo docker compose up -d
镜像源不是越多越好,按你所在网络可用性选 1 到 3 个;拉取仍失败时,先确认 DNS 和出网,再换源。
如果启动时报 apparmor 相关错误,检查 /etc/apparmor.d/tunables/home.d/ubuntu,按报错行号删掉多余字符,再重新执行 docker compose up -d。
4.3 访问与管理员设置
浏览器访问 http://<腾讯云公网IP>,第一次会进入「设置管理员账户」页面,填邮箱、用户名、密码。

图 5:Dify 首次访问设置管理员账户;地址换成你的服务器 IP。
密码要求包含字母和数字、长度不小于 8 位。邮箱和密码自己保管,不要照抄课程或文章里的示例。设置完成后进入 Dify 主界面,可以开始创建应用。
如果页面一直加载不出来,先看容器状态:
cd /opt/dify/docker
sudo docker compose ps
sudo docker compose logs -f --tail=100
重点看 api、worker、db、redis 是否 Up。只重启 nginx 通常没用,问题多半在下游容器。
4.4 快照与备份
如果用的是竞价实例,建议在腾讯云控制台设置定期快照策略:实例被释放后还能用快照恢复。Dify 自身要备份的是 dify/docker/volumes 下的数据和 .env 配置;升级前先备份这两处。
五、部署在线大模型(可选)
在接私有模型之前,可以先用一个在线模型验证 Dify 的链路。Dify 的模型供应商里有 DeepSeek,去 DeepSeek 官网申请 API Key,填进 Dify 即可。

图 6:Dify 的模型供应商里有 DeepSeek,填 API Key 即可用在线模型。
在线模型的优点是省事,缺点是数据要出内网。敏感业务仍然要部署私有模型;在线模型只用来验证流程,或者在非敏感场景兜底。

图 7:Dify 的模型供应商页面;在线模型、Ollama、Xinference 都在这里接。
六、Dify 的组件与运维
Dify 的 docker compose 会起一组容器:web 是前端,api 和 worker 是后端,db 是 PostgreSQL,redis 做缓存,nginx 做入口,plugin_daemon 管插件,sandbox 跑代码,ssrf_proxy 做代理。
常用命令:
cd /opt/dify/docker
sudo docker compose ps # 看状态
sudo docker compose logs -f api # 看接口日志
sudo docker compose restart # 重启
sudo docker compose down # 停止(数据在 volumes 里,不会丢)
服务器重启后如果 Dify 没起来,先确认 Docker 是否开机启动:sudo systemctl enable docker。
七、验收
docker compose ps里 api、worker、web、db、redis 都是 Up;curl -I http://<公网IP>返回 200;- 浏览器能打开 Dify 并登录;
- 「设置 → 模型供应商」能正常打开;
- 在线模型或本地模型至少有一个能对话。
八、常见报错与处置
| 现象 | 原因 | 处置 |
|---|---|---|
| 拉镜像超时 / TLS handshake timeout | 默认镜像源不可达 | 配 daemon.json 镜像源,重启 Docker 后重试 |
| 启动报 apparmor 文件错误 | home.d/ubuntu 里有多余字符 |
按报错行号删除多余内容,再启动 |
| 80 端口被占用 | 服务器上已有 Nginx / Apache | 停掉占用进程,或改 Dify 的端口映射 |
| 页面打不开但容器都是 Up | 安全组没开 80,或 nginx 未启动 | 检查安全组和 docker compose ps |
| 忘记管理员密码 | 本地账号 | 用 Dify 的重置密码命令,或重建管理员(先备份) |
| 重启服务器后 Dify 没起来 | Docker 服务未设开机启动 | sudo systemctl enable docker |
| Git clone 失败 | GitHub 网络问题 | 用 Gitee 导入自己的仓库再 clone |
九、边界
Dify 只是应用层,它不提供模型。模型服务没接上,Dify 只能当空壳;模型服务接上了,Dify 才能做知识库、工作流和 Agent。
生产环境还要补 HTTPS、登录与权限、备份、监控和限流。社区版能跑通流程,企业级权限和审计要单独评估。
下一篇
平台有了,下一步给它接一个大语言模型。下一篇在 AutoDL 的 4090 上装 Ollama,跑 qwen3:4b,再通过 SSH 隧道接进 Dify。

AI项目博客






