Docker部署Dify
-
- 一、部署环境要求
-
- [1. 硬件配置](#1. 硬件配置)
- [2. 软件环境](#2. 软件环境)
- [二、Docker Compose 部署流程](#二、Docker Compose 部署流程)
-
- [1. 拉取官方源码](#1. 拉取官方源码)
- [2. 进入部署目录](#2. 进入部署目录)
- [3. 拉取镜像](#3. 拉取镜像)
- [4. 后台启动服务](#4. 后台启动服务)
- [5. 校验部署状态](#5. 校验部署状态)
- [6. 访问后台](#6. 访问后台)
- 三、修改默认端口(解决80端口冲突)
-
- [1. 编辑配置文件](#1. 编辑配置文件)
- [2. 修改端口参数](#2. 修改端口参数)
- [3. 重启容器生效](#3. 重启容器生效)
- 四、常用运维命令
- 五、部署常见问题及解决方案
-
- [1. 内存不足,容器启动失败](#1. 内存不足,容器启动失败)
- [2. 80端口被占用](#2. 80端口被占用)
- [3. 镜像拉取超时、失败](#3. 镜像拉取超时、失败)
- [4. 浏览器无法访问后台](#4. 浏览器无法访问后台)
- 六、官方源码拉取失败解决方案
-
- [1. 更换 Gitee 镜像源(解决 git clone 失败)](#1. 更换 Gitee 镜像源(解决 git clone 失败))
- [2. 配置 Docker 国内镜像加速(解决拉取镜像超时)](#2. 配置 Docker 国内镜像加速(解决拉取镜像超时))
- [3. 重新拉取镜像](#3. 重新拉取镜像)
一、部署环境要求
1. 硬件配置
-
CPU ≥ 2核
-
内存 ≥ 4G(推荐8G及以上)
-
硬盘空闲空间 ≥ 20G
2. 软件环境
-
Linux:Docker 19.03.、Docker Compose 1.28.
-
Windows:开启WSL2,安装Docker Desktop
-
macOS:安装Docker Desktop,分配2核8G内存
二、Docker Compose 部署流程
1. 拉取官方源码
bash
cd /usr/local
git clone https://github.com/langgenius/dify.git
若官方源克隆不下来请看文章第六点
2. 进入部署目录
bash
cd /usr/local/dify/docker
cp .env.example .env
3. 拉取镜像
bash
docker compose pull
4. 后台启动服务
bash
docker compose up -d
5. 校验部署状态
bash
docker compose ps
所有容器状态为 Up,即为部署成功。
6. 访问后台
默认访问地址:http://服务器IP:80,首次访问需初始化管理员账号密码。
三、修改默认端口(解决80端口冲突)
1. 编辑配置文件
bash
vi /usr/local/dify/docker/.env
2. 修改端口参数
将以下端口修改为未占用端口,示例改为8080:
Plain
EXPOSE_NGINX_PORT=8080
3. 重启容器生效
bash
docker compose down
docker compose up -d
四、常用运维命令
bash
# 查看运行状态
docker compose ps
# 重启服务
docker compose restart
# 停止服务(保留数据)
docker compose stop
# 停止并删除容器
docker compose down
# 实时查看日志
docker compose logs -f
五、部署常见问题及解决方案
1. 内存不足,容器启动失败
Docker Desktop 用户调高内存至8G以上;Linux 服务器可新增swap分区扩容内存。
2. 80端口被占用
关闭Nginx、Apache等占用服务,或按照上文流程修改访问端口。
3. 镜像拉取超时、失败
更换Docker国内镜像源,检查服务器网络,重新执行拉取命令。
4. 浏览器无法访问后台
放行服务器安全组、防火墙端口;确认全部容器处于Up运行状态。
六、官方源码拉取失败解决方案
1. 更换 Gitee 镜像源(解决 git clone 失败)
bash
cd /usr/local
git clone https://gitee.com/mirrors/dify.git
2. 配置 Docker 国内镜像加速(解决拉取镜像超时)
创建或修改 Docker 配置文件:
bash
vi /etc/docker/daemon.json
写入以下国内加速源:
json
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com"
]
}
重启 Docker 生效:
bash
systemctl daemon-reload
systemctl restart docker
3. 重新拉取镜像
bash
cd /usr/local/dify/docker
docker compose pull