玩转AI实战 | 在Docker环境下安装Dify平台
玩转AI实战 | 在Docker环境下安装Dify平台
一、Dify介绍
1.1 Dify简介
Dify 是一个开源的 LLM 应用开发平台,融合了“后端即服务”(BaaS)和 LLMOps 理念,支持在统一的工作区中构建 Agentic 工作流和 RAG 管道,并提供云端、VPC 及自托管等多种部署方式,助力团队快速将 AI 原型转化为生产级应用。
1.2 Dify主要特点
- Workflow(工作流):支持在可视化画布上构建和测试强大的 AI 工作流,轻松实现复杂的逻辑编排。
- Comprehensive model support(全面模型支持):无缝集成数百种商业与开源大模型及自托管方案,涵盖 GPT、Llama3 及所有兼容 OpenAI API 的模型。
- Prompt IDE(提示词 IDE):提供直观的提示词编写界面,支持多模型性能对比以及为聊天应用添加文本转语音等扩展功能。
- RAG Pipeline(RAG 管道):提供从文档摄入到检索的全链路 RAG 能力,开箱即用支持 PDF、PPT 等多种常见格式的文本提取。
- Agent capabilities(Agent 智能体能力):支持基于 Function Calling 或 ReAct 定义智能体,并内置 50 多种工具(如搜索引擎、AI 绘图等)供随时调用。
- LLMOps(大模型运维):提供应用日志与性能的实时监控分析,支持基于生产数据和标注持续优化提示词、数据集与模型。
- Backend-as-a-Service(后端即服务):所有功能均配备标准 API 接口,使开发者能够毫不费力地将 Dify 集成到自身的业务逻辑中。
二、本次实践规划
2.1 本地环境规划
本次实践为个人测试环境,操作系统版本为 Ubuntu 24.04.2 LTS。
| hostname | IP地址 | 操作系统版本 | Docker版本 | 部署项目 | 备注 |
|---|---|---|---|---|---|
| jeven | 192.168.3.88 | Ubuntu 24.04.2 LTS | 28.5.0 | Dify | 1.16.1 |
2.2 本次实践介绍
1.本次实践部署环境为个人测试环境,生产环境请谨慎;
2.在Docker环境下部署Dify — LLM 应用开发平台。
2.3 部署要求
在安装 Dify 之前,请确保你的机器满足以下最低系统要求:
- CPU:不低于 2 核
- 内存:不低于 4 GiB
三、本地环境检查
3.1 检查Docker服务状态
检查Docker服务是否正常运行,确保Docker正常运行。
root@jeven:~# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; preset: enabled)
Active: active (running) since Sun 2026-05-31 23:17:28 CST; 1 month 29 days ago
TriggeredBy: ● docker.socket
Docs: https://docs.docker.com
Main PID: 945 (dockerd)
Tasks: 117
Memory: 787.7M (peak: 1018.4M swap: 11.8M swap peak: 12.6M)
CPU: 58min 1.415s
CGroup: /system.slice/docker.service

3.2 检查Docker版本
检查Docker版本
root@jeven:~# docker -v
Docker version 28.5.0, build 887030f
3.3 检查docker compose 版本
检查Docker compose版本,确保2.0以上版本。
root@jeven:~# docker compose version
Docker Compose version v2.39.4
四、拉取Dify项目
4.1 下载项目
下载dify项目源码,如下所示:
https://github.com/langgenius/dify.git
如果拉取缓慢或者失败,可以使用国内gitee仓库:
git clone https://gitee.com/dify_ai/dify.git

4.2 查看项目内容
- 进入Dify项目后,查看项目内容:
root@jeven:~# cd dify/
root@jeven:~/dify# ls -l
总计 1004
-rw-r--r-- 1 root root 806 8月 16 14:33 AGENTS.md
drwxr-xr-x 32 root root 4096 8月 16 14:33 api
-rw-r--r-- 1 root root 56 8月 16 14:33 AUTHORS
lrwxrwxrwx 1 root root 9 8月 16 14:33 CLAUDE.md -> AGENTS.md
drwxr-xr-x 6 root root 4096 8月 16 14:33 cli
-rw-r--r-- 1 root root 508 8月 16 14:33 codecov.yml
-rw-r--r-- 1 root root 5204 8月 16 14:33 CONTRIBUTING.md
-rw-r--r-- 1 root root 20 8月 16 14:33 depot.json
drwxr-xr-x 2 root root 4096 8月 16 14:33 dev
drwxr-xr-x 6 root root 4096 8月 16 14:33 dify-agent
drwxr-xr-x 6 root root 4096 8月 16 14:33 dify-agent-runtime
drwxr-xr-x 13 root root 4096 8月 16 14:33 docker
drwxr-xr-x 19 root root 4096 8月 16 14:33 docs
drwxr-xr-x 7 root root 4096 8月 16 14:33 e2e
-rw-r--r-- 1 root root 11098 8月 16 14:33 eslint.config.mjs
drwxr-xr-x 2 root root 4096 8月 16 14:33 images
-rw-r--r-- 1 root root 1555 8月 16 14:33 knip.config.ts
-rw-r--r-- 1 root root 1801 8月 16 14:33 LICENSE
-rw-r--r-- 1 root root 56789 8月 16 14:33 lint.config.ts
-rw-r--r-- 1 root root 9621 8月 16 14:33 Makefile
-rw-r--r-- 1 root root 151813 8月 16 14:33 oxlint-suppressions.json
-rw-r--r-- 1 root root 2541 8月 16 14:33 package.json
drwxr-xr-x 9 root root 4096 8月 16 14:33 packages
-rw-r--r-- 1 root root 665633 8月 16 14:33 pnpm-lock.yaml
-rw-r--r-- 1 root root 7211 8月 16 14:33 pnpm-workspace.yaml
-rw-r--r-- 1 root root 14606 8月 16 14:33 README.md
drwxr-xr-x 4 root root 4096 8月 16 14:33 scripts
drwxr-xr-x 4 root root 4096 8月 16 14:33 sdks
-rw-r--r-- 1 root root 1116 8月 16 14:33 SECURITY.md
-rw-r--r-- 1 root root 2265 8月 16 14:33 vite.config.ts
drwxr-xr-x 28 root root 4096 8月 16 14:33 web
五、部署Dify服务
5.1 复制变量文件
- 进入项目的Docker目录:
root@jeven:~/dify# cd docker/
root@jeven:~/dify/docker# ls
certbot docker-compose.middleware.yaml elasticsearch pgvector volumes
couchbase-server docker-compose.png envs README.md
dify-env-sync.py docker-compose.pytest.ports.yaml generate_docker_compose ssrf_proxy
dify-env-sync.sh docker-compose-template.yaml iris startupscripts
docker-compose.e2b.yaml docker-compose.yaml nginx tidb
- 复制变量文件
cp .env.example .env
5.2 一键部署
执行以下命令,快速创建Dify服务。
docker compose up -d

5.3 查看Dify各容器状态
检查Dify各容器运行状态,确保Dify各容器正常启动。
root@jeven:~/dify/docker# docker compose ps
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
docker-agent_backend-1 langgenius/dify-agent-backend:1.16.1 "uvicorn dify_agent.…" agent_backend About a minute ago Up About a minute 5050/tcp
docker-agent_ssrf_proxy-1 ubuntu/squid:latest "sh -c 'cp /docker-e…" agent_ssrf_proxy About a minute ago Up About a minute 3128/tcp
docker-api-1 langgenius/dify-api:1.16.1 "/bin/bash /entrypoi…" api About a minute ago Up About a minute (healthy) 5001/tcp
docker-api_websocket-1 langgenius/dify-api:1.16.1 "/bin/bash /entrypoi…" api_websocket About a minute ago Up About a minute 5001/tcp
docker-db_postgres-1 postgres:15-alpine "docker-entrypoint.s…" db_postgres About a minute ago Up About a minute (healthy) 5432/tcp
docker-local_sandbox-1 langgenius/dify-agent-local-sandbox:1.16.1 "shellctl serve --li…" local_sandbox About a minute ago Up About a minute (healthy)
docker-nginx-1 nginx:latest "sh -c 'cp /docker-e…" nginx About a minute ago Up About a minute 0.0.0.0:80->80/tcp, [::]:80->80/tcp, 0.0.0.0:443->443/tcp, [::]:443->443/tcp
docker-plugin_daemon-1 langgenius/dify-plugin-daemon:0.6.10-local "/usr/bin/tini -g --…" plugin_daemon About a minute ago Up About a minute 0.0.0.0:5003->5003/tcp, [::]:5003->5003/tcp
docker-redis-1 redis:6-alpine "docker-entrypoint.s…" redis About a minute ago Up About a minute (healthy) 6379/tcp
docker-sandbox-1 langgenius/dify-sandbox:0.2.15 "/entrypoint.sh" sandbox About a minute ago Up About a minute (healthy)
docker-ssrf_proxy-1 ubuntu/squid:latest "sh -c 'cp /docker-e…" ssrf_proxy About a minute ago Up About a minute 3128/tcp
docker-weaviate-1 semitechnologies/weaviate:1.27.0 "/bin/weaviate --hos…" weaviate About a minute ago Restarting (1) 41 seconds ago
docker-web-1 langgenius/dify-web:1.16.1 "/bin/sh ./entrypoin…" web About a minute ago Up About a minute 3000/tcp
docker-worker-1 langgenius/dify-api:1.16.1 "/bin/bash /entrypoi…" worker About a minute ago Up About a minute 5001/tcp
docker-worker_beat-1 langgenius/dify-api:1.16.1 "/bin/bash /entrypoi…" worker_beat About a minute ago Up About a minute 5001/tcp

5.4 检查Dify容器日志
检查容器运行日志,确保Dify服务正常运行,无报错信息。
docker compose logs

六、访问Dify服务
浏览器地址:
http://<个人的服务器IP>:80,访问Dify初始页。如果无法访问,请确保宿主机的防火墙已关闭或已放行相关端口,对于云服务器还需配置相应的安全组规则。

设置管理员账号:自行设置管理员账号和密码,登录即可。


七、Dify基本使用
7.1 配置大模型
在集成—模型供应商中,选择安装OpenAI-API-compatible。

配置各大模型厂商或平台的 API 信息,例如填写 CSDN AI 平台的 API Key 等。

7.2 测试对话
创建一个空白应用进行测试,例如可以创建一个“旅游助手”应用,如下所示:

打开对话页面:点击【发布】—【运行】,打开智能体网页对话页面。

在对话页面进行简单的问答测试,如果智能体应用能够正常响应,则说明大模型配置成功。

八、总结
本次实践在 Docker 环境下完成了 Dify 平台的全流程部署,从环境检查、项目拉取到服务启动与模型配置,验证了容器化方案在简化依赖管理、保障服务隔离方面的显著优势。部署过程中发现,服务器内存资源是影响平台稳定运行的核心瓶颈,物理内存不足 4GB 时极易引发画布渲染卡顿甚至容器被系统回收,建议生产环境至少配备 8GB 以上内存。Dify 凭借可视化工作流编排与开箱即用的模型接入能力,大幅降低了大模型应用的开发门槛,使非算法背景的开发者也能快速搭建智能对话、RAG 检索、Agent 智能体等场景化应用。掌握 Docker 部署 Dify 的方法,为后续构建企业级 AI 应用奠定了坚实的技术基础。
- 点赞
- 收藏
- 关注作者
评论(0)