linux服务器Docker容器中部署Dify

发布时间:2026/7/29 20:01:55

linux服务器Docker容器中部署Dify 文档说明本文档基于实际操作步骤编写涵盖 Dify 1.4.1 版本的 Docker 环境部署全流程包含代码拉取、环境配置、端口冲突解决、服务启动及验证等核心步骤适配 Linux 系统CentOS/RHEL 系列解决了 Docker 镜像拉取超时、443 端口占用、Nginx 容器重启失败等常见问题。一、环境准备系统要求Linux 服务器CentOS 7/RHEL 7已安装 Git、Docker、Docker Compose权限要求使用 root 或具有 sudo 权限的用户操作端口说明默认占用 80HTTP、443HTTPS若端口被占用需按文档步骤修改二、核心部署步骤步骤1拉取 Dify 1.4.1 源码进入服务器指定目录如/opt克隆 Dify 官方源码并切换至 1.4.1 版本分支# 进入部署目录cd/opt# 克隆源码并指定1.4.1分支gitclone https://github.com/langgenius/dify.git--branch1.4.1# 进入dify目录cddify# 进入docker部署子目录核心部署目录cddocker步骤2初始化 Docker 环境配置复制环境配置文件模板生成本地环境配置文件cp.env.example .env说明.env文件包含 Dify 核心配置数据库、Redis、端口等默认配置可满足基础部署无需额外修改。检查并启动 Docker 服务# 检查Docker服务状态systemctl statusdocker# 若未启动启动Docker并设置开机自启systemctl startdockersystemctlenabledocker若出现docker: command not found需先安装 Docker出现systemctk: command not found为命令拼写错误正确命令为systemctl。步骤3解决 Docker 镜像拉取超时问题若执行启动命令时出现context deadline exceeded镜像拉取超时需配置 Docker 国内镜像源步骤如下创建/编辑 Docker 守护进程配置文件vim/etc/docker/daemon.json写入国内镜像源配置阿里云/网易云均可示例为阿里云镜像cat /etc/docker/daemon.json EOF { registry-mirrors: [ https://mirror.aliyuncs.com, https://mirror.baidubce.com, https://docker.m.daocloud.io ] } EOF3. 重新加载配置并重启 Docker 服务 bash systemctl daemon-reload systemctl restart docker注意配置文件需为合法 JSON 格式若格式错误会导致 Docker 重启失败需重新编辑检查。步骤4启动 Dify 服务初次启动执行 Docker Compose 后台启动命令拉取镜像并启动所有服务dockercompose up-d说明首次启动会自动拉取 9 个核心镜像Nginx、PostgreSQL、Redis、Dify-API/WEB 等拉取速度取决于网络环境耐心等待即可。步骤5解决 443 端口占用问题问题现象启动时出现错误Bind for 0.0.0.0:443 failed: port is already allocated表示 443 端口被其他容器/进程占用。解决步骤查找 443 端口占用进程/容器# 查看443端口占用情况netstat-tulpn|grep:443# 查找占用443端口的Docker容器dockerps-a--formattable {{.ID}}\t{{.Names}}\t{{.Ports}}|grep443停止并删除占用 443 端口的旧容器示例为dify-nginxdockerstop dify-nginxdockerrmdify-nginx修改 Docker Compose 配置调整 Nginx 端口映射将容器 443 端口映射到主机 8443 端口# 编辑docker-compose.yaml配置文件vimdocker-compose.yaml找到nginx服务的ports配置段修改端口映射规则services:nginx:image:nginx:latestports:-80:80# 保持HTTP端口不变-443:8443# 原443:443修改为443:8443解决端口占用depends_on:-api-web保存退出:wq重新强制创建并启动 Nginx 服务dockercompose up-d--force-recreate nginx说明--force-recreate表示强制重新创建 Nginx 容器使端口配置修改生效。步骤6清理孤儿容器可选启动时若出现警告Found orphan containers孤儿容器如旧版本的worker_beat可添加--remove-orphans标志清理保证服务一致性dockercompose up-d--remove-orphans三、服务状态验证验证1查看所有服务运行状态执行以下命令检查 Dify 所有容器的启动状态、端口映射、健康状态dockercomposeps正常运行标准所有服务api/web/db/redis/nginx/sandbox等的STATUS列显示Up或Up (healthy)Nginx 服务端口显示0.0.0.0:80-80/tcp, 0.0.0.0:443-8443/tcp无Restarting/Exited状态的容器。验证2单独检查 Nginx 服务核心入口dockercomposepsnginx正常输出示例NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS docker-nginx-1 nginx:latest sh -c cp /docker-e… nginx 11 seconds ago Up 10 seconds 0.0.0.0:80-80/tcp, 0.0.0.0:443-8443/tcp四、访问 Dify 系统访问地址通过服务器 IP 直接访问无需输入端口Nginx 监听 80 端口做反向代理http://你的服务器IP初始账号配置首次访问时系统会引导创建超级管理员账号按页面提示输入邮箱、密码即可完成初始化。五、常见问题及解决方案问题1Docker 服务重启失败现象Job for docker.service failed because the control process exited with error code原因/etc/docker/daemon.json配置文件格式错误如缺少逗号、引号不匹配解决重新编辑配置文件确保为合法 JSON 格式再执行systemctl daemon-reload systemctl restartdocker问题2镜像拉取中断/超时现象Image xxx Interrupted/context deadline exceeded原因Docker 默认镜像源访问缓慢网络超时解决按步骤3配置国内镜像源重启 Docker 后重新拉取。问题3Nginx 容器反复重启现象docker compose ps中 Nginx 状态显示Restarting原因端口占用、配置文件映射错误解决按步骤5修改端口映射强制重新创建 Nginx 容器。问题4出现孤儿容器警告现象WARN[0000] Found orphan containers ([xxx])原因旧版本部署的容器未清理与当前 Compose 配置不匹配解决启动时添加--remove-orphans标志自动清理孤儿容器dockercompose up-d--remove-orphans六、核心操作命令汇总Docker 服务管理# 启动Dockersystemctl startdocker# 停止Dockersystemctl stopdocker# 重启Dockersystemctl restartdocker# 设置Docker开机自启systemctlenabledocker# 查看Docker状态systemctl statusdockerDify 服务管理在/opt/dify/docker目录执行# 后台启动所有服务dockercompose up-d# 停止所有服务dockercompose down# 查看服务运行状态dockercomposeps# 查看服务日志如查看api日志dockercompose logs-fapi# 强制重新创建Nginx服务dockercompose up-d--force-recreate nginx# 启动并清理孤儿容器dockercompose up-d--remove-orphans# 重启所有服务dockercompose restart端口占用排查# 查看指定端口如443占用情况netstat-tulpn|grep:443# 查找Docker容器端口映射dockerps-a--formattable {{.ID}}\t{{.Names}}\t{{.Ports}}|grep端口号七、部署目录结构/opt/ └── dify/ # Dify源码根目录 └── docker/ # 核心部署目录所有操作均在此目录执行 ├── .env # 环境配置文件由.env.example复制生成 ├── .env.example # 环境配置模板文件 ├── docker-compose.yaml # Docker Compose核心配置文件 └── 其他部署相关文件Nginx配置、启动脚本等八、注意事项部署过程中需保证服务器网络通畅能访问 Docker Hub 或配置的国内镜像源首次启动镜像拉取完成后后续重启无需重新拉取镜像速度会大幅提升若需修改 Dify 核心配置如数据库密码、Redis 地址编辑/opt/dify/docker/.env文件后执行docker compose restart生效建议服务器分配至少 4G 内存保证所有容器正常运行若需开启 HTTPS需将 SSL 证书放置到 Nginx 配置目录修改docker-compose.yaml中的证书映射路径。

相关新闻