部署DeepSeek模型,进群交流最in玩法!
立即加群
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >使用Docker在OpenEuler服务器配置Dify

使用Docker在OpenEuler服务器配置Dify

原创
作者头像
happywei
修改于 2025-05-19 02:29:55
修改于 2025-05-19 02:29:55
19400
代码可运行
举报
运行总次数:0
代码可运行

Dify的部署

下载文件

代码语言:bash
AI代码解释
复制
git clone https://github.com/langgenius/dify.git
cd dify/docker

配置环境

代码语言:bash
AI代码解释
复制
cp .env.example .env

启动服务 如果你使用的是Docker Compose V2:

代码语言:bash
AI代码解释
复制
docker compose up -d

如果你使用的是Docker Compose V1:

代码语言:bash
AI代码解释
复制
docker-compose up -d
代码语言:txt
AI代码解释
复制
(llm) [root@localhost docker]# docker-compose up -d
[+] Running 48/81
[+] Running 81/81] Pulling                                                                                                    541.3s 
 ✔ db Pulled                                                                                                                  705.7s 
 ✔ sandbox Pulled                                                                                                             183.5s 
 ✔ weaviate Pulled                                                                                                            541.9s 
 ✔ redis Pulled                                                                                                               558.6s 
 ✔ api Pulled                                                                                                                 750.7s 
 ✔ ssrf_proxy Pulled                                                                                                          516.2s 
 ✔ worker Pulled                                                                                                              750.7s 
 ✔ web Pulled                                                                                                                 237.9s 
 ✔ plugin_daemon Pulled                                                                                                       629.4s 
 ✔ nginx Pulled                                                                                                               620.8s 
WARN[0751] Found orphan containers ([ragflow-es-01 ragflow-mysql]) for this project. If you removed or renamed this service in your compose file, you can run this command with the --remove-orphans flag to clean it up. 
[+] Running 13/13
 ✔ Network docker_default             Created                                                                                   0.1s 
 ✔ Network docker_ssrf_proxy_network  Created                                                                                   0.0s 
 ✔ Container docker-weaviate-1        Started                                                                                   2.9s 
 ✔ Container docker-ssrf_proxy-1      Started                                                                                   3.6s 
 ✔ Container docker-db-1              Healthy                                                                                   6.1s 
 ✔ Container ragflow-redis            Recreated                                                                                 2.4s 
 ✔ Container docker-web-1             Started                                                                                   3.6s 
 ✔ Container docker-sandbox-1         Started                                                                                   2.9s 
 ✔ Container docker-plugin_daemon-1   Started                                                                                   4.4s 
 ✔ Container docker-worker-1          Started                                                                                   4.5s 
 ✔ Container docker-api-1             Started                                                                                   4.4s 
 ✔ Container docker-nginx-1           Started                                                                                   4.7s 
 ✔ Container docker-redis-1           Started                                                                                   1.1s 

检查服务状态:

代码语言:bash
AI代码解释
复制
docker compose ps

所有容器都应该显示 Up 状态

代码语言:txt
AI代码解释
复制
NAME                     IMAGE                                       COMMAND                   SERVICE         CREATED          STATUS                    PORTS
docker-api-1             langgenius/dify-api:1.3.1                   "/bin/bash /entrypoi…"   api             17 minutes ago   Up 17 minutes             5001/tcp
docker-db-1              postgres:15-alpine                          "docker-entrypoint.s…"   db              17 minutes ago   Up 17 minutes (healthy)   5432/tcp
docker-nginx-1           nginx:latest                                "sh -c 'cp /docker-e…"   nginx           17 minutes ago   Up 17 minutes             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.0.9-local   "/bin/bash -c /app/e…"   plugin_daemon   17 minutes ago   Up 17 minutes             0.0.0.0:5003->5003/tcp, [::]:5003->5003/tcp
docker-redis-1           redis:6-alpine                              "docker-entrypoint.s…"   redis           17 minutes ago   Up 17 minutes (healthy)   6379/tcp
docker-sandbox-1         langgenius/dify-sandbox:0.2.11              "/main"                   sandbox         17 minutes ago   Up 17 minutes (healthy)   
docker-ssrf_proxy-1      ubuntu/squid:latest                         "sh -c 'cp /docker-e…"   ssrf_proxy      17 minutes ago   Up 17 minutes             3128/tcp
docker-weaviate-1        semitechnologies/weaviate:1.19.0            "/bin/weaviate --hos…"   weaviate        17 minutes ago   Up 17 minutes             
docker-web-1             langgenius/dify-web:1.3.1                   "/bin/sh ./entrypoin…"   web             17 minutes ago   Up 17 minutes             3000/tcp
docker-worker-1          langgenius/dify-api:1.3.1                   "/bin/bash /entrypoi…"   worker          17 minutes ago   Up 17 minutes             5001/tcp
ragflow-es-01            elasticsearch:8.11.3                        "/bin/tini -- /usr/l…"   es01            22 hours ago     Up 30 minutes (healthy)   9300/tcp, 0.0.0.0:1200->9200/tcp, [::]:1200->9200/tcp

通过本机访问服务器端部署的Dify

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# Local environment
http://localhost/install

# Server environment -http://10.213.120.228/install
http://your_server_ip/install

Ollama的部署

查看docker状态并启动docker

代码语言:bash
AI代码解释
复制
systemctl status docker
systemctl start docker

安装ollama

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker run -d -v /qjp/software/ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama

进入 Docker 容器

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker exec -it ollama bash

下载模型

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ollama run qwen3:32b

都安装好之后

dify基础配置:打开.env文件,配置以下关键参数:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
CONSOLE_URL=http://localhost
SERVICE_API_URL=http://localhost
UPLOAD_FILE_SIZE_LIMIT=50 # 文件上传限制,单位MB
UPLOAD_FILE_MIME_TYPES=.pdf,.doc,.docx,.txt # 允许上传的文件类型

配置模型

配置好之后,问题也出现了,反应速度极慢

如果 Ollama 没启用 GPU,会走 CPU 推理

猜想可能是Ollama 官方暂不原生支持昇腾Ascend/NPU。

验证猜想,确实是纯cpu在推理

代码语言:bash
AI代码解释
复制
(llm) [root@localhost ~]# docker logs ollama
load_tensors:          CPU model buffer size =   492.75 MiB
llama_context: constructing llama_context
llama_context: n_ctx_per_seq (4096) < n_ctx_train (40960) -- the full capacity of the model will not be utilized
llama_context:        CPU  output buffer size =     1.17 MiB
init: kv_size = 8192, offload = 1, type_k = 'f16', type_v = 'f16', n_layer = 28, can_shift = 1
init:        CPU KV buffer size =   896.00 MiB
llama_context: KV self size  =  896.00 MiB, K (f16):  448.00 MiB, V (f16):  448.00 MiB
llama_context:        CPU compute buffer size =   300.75 MiB

GPUStack的部署

换个思维,获取gpustack/gpustack:latest-npu镜像。

代码语言:bash
AI代码解释
复制
docker pull gpustack/gpustack:latest-npu

创建容器

代码语言:bash
AI代码解释
复制
docker run -d --name gpustack \
--shm-size=16g \
--privileged=true \
--restart=always \
--device=/dev/davinci_manager \
--device=/dev/devmm_svm \
--device=/dev/hisi_hdc \
-v /usr/local/Ascend/driver:/usr/local/Ascend/driver \
-v /usr/local/Ascend/add-ons/:/usr/local/Ascend/add-ons/ \
-v /usr/local/sbin/:/usr/local/sbin/ \
-v /usr/local/dcmi:/usr/local/dcmi \
-v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \
-v /usr/local/Ascend/driver/lib64/:/usr/local/Ascend/driver/lib64/ \
-v /usr/local/Ascend/driver/version.info:/usr/local/Ascend/driver/version.info \
-v /etc/ascend_install.info:/etc/ascend_install.info \
--network=host \
--ipc=host \
-v /data:/var/lib/gpustack \
gpustack/gpustack:latest-npu
# 其中-v /data:/var/lib/gpustack是将物理机的/data挂载到容器/var/lib/gpustack目录下

检查容器是否正常运行

代码语言:bash
AI代码解释
复制
docker logs -f gpustack

在浏览器中打开 http://服务器IP 以访问 GPUStack UI

使用用户名 admin 和默认密码登录 GPUStack。可以运行以下命令来获取默认设置的密码:

代码语言:bash
AI代码解释
复制
docker exec -it gpustack cat /var/lib/gpustack/initial_admin_password

尝试之后,最后结果就是dify和gpustack端口冲突问题,都需要访问80端口才能进入web,经过许多次创建容器时候设置端口映射,但都无法通过http://10.213.120.228:8090访问gpustack,放弃。

VLLM插件的部署

1.在dify中添加vllm插件

2.后台运行模型,开放正确的端口:8000

代码语言:bash
AI代码解释
复制
cd /data01/downloadModel/Qwen

vllm serve Qwen3-0.6B --port 8000 --enable-reasoning --reasoning-parser deepseek_r1

3. 第一步第二步成功之后,才能设置正确的模型名称和API endpoint URL,否则dify会报错:

代码语言:bash
AI代码解释
复制
An error occurred during credentials validation: HTTPConnectionPool(host='10.213.120.228', port=8000): 
Max retries exceeded with url: /v1/chat/completions (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0xffff98d1cc20>: 
Failed to establish a new connection: [Errno 111] Connection refused')) 

成功配置

服务重启操作

dify容器异常时,可以通过以下命令重启服务(不会删除本地数据): 停止服务

代码语言:bash
AI代码解释
复制
cd dify/docker
docker-compose down
代码语言:bash
AI代码解释
复制
#重新启动dify服务
cd dify/docker
docker-compose up -d

现可在浏览器成功访问http://10.213.120.228

附:docker指令

1. 基础命令

  • docker pull <image>: 从 Docker Hub 拉取镜像。
  • docker create <image>: 从镜像创建容器。
  • docker start <container_name/container_id>: 启动容器。
  • docker stop <container_name/container_id>: 停止容器。
  • docker kill <container_name/container_id>: 强制停止容器的入口进程。
  • docker rm <container_name/container_id>: 删除容器。
  • docker ps: 列出所有运行中的容器。
  • docker ps -a: 列出所有容器。

2. 高级命令

  • docker run --name <container_name> -p <host_port>:<container_port> <image>: 拉取、创建、启动并运行容器。
  • docker run -d <image>: 在分离模式下运行容器。
  • docker run -e <key>=<value> <image>: 设置环境变量并运行容器。
  • docker run -it <image> <command>: 运行容器并覆盖默认命令。
  • docker run -it --entrypoint <entrypoint_command> <image>: 运行容器并覆盖默认入口点。

3. 管理命令

  • docker inspect <container_name>: 获取容器详细信息。
  • docker exec -it <image_name> <command>: 在运行中的容器内执行命令。
  • docker volume ls: 列出所有卷。
  • docker network create <network_name>: 创建用户定义的网络。
  • docker build <path>: 构建 Docker 镜像。
  • docker tag <image_name> <company>/<new_image_name>:<version>: 为镜像添加标签。
  • docker push <company>/<new_image_name>:<version>: 推送镜像到仓库。

4. 清理命令

  • docker stop $(docker ps -a -q): 停止所有容器。
  • docker rm $(docker ps -a -q): 删除所有容器。
  • docker image rm $(docker image ls -q): 删除所有镜像。

Docker Compose 命令整理

1. 构建和管理服务

  • docker compose build: 构建 Docker Compose 的所有服务。
  • docker compose create: 创建服务。
  • docker compose start: 启动服务。
  • docker compose restart: 重启服务。
  • docker compose pause: 暂停服务。
  • docker compose unpause: 恢复服务。

2. 运行和停止服务

  • docker compose run: 在服务中运行命令。
  • docker compose stop: 停止服务。
  • docker compose rm: 移除已停止的容器。
  • docker compose up: 创建并启动容器。
  • docker compose down: 停止并移除容器。

3. 日志和监控

  • docker compose logs -f --tail <lines_count>: 打印并监控所有服务的日志。

4. 扩展和更新

  • docker compose up --scale <service>=<count>: 创建、启动容器并扩展服务数量。
  • docker compose pull: 拉取所有服务的镜像,常用于更新服务镜像。

reference:

https://blog.csdn.net/2201_75299183/article/details/145954317

https://mp.weixin.qq.com/s?__biz=MzIzMzQyMzUzNw==&mid=2247488132&idx=1&sn=b167ef534c5228021033246b9719e38c&scene=21#wechat_redirect

https://blog.csdn.net/u014796292/article/details/147694085

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
部署Docker&使用Docker在OpenEuler服务器配置RAGFlow
docker下载网站:https://download.docker.com/linux/static/stable/
happywei
2025/05/15
2180
Dify 平台的部署
weaviate / db / redis / nginx / ssrf_proxy / sandbox / plugin_daemon
陈明勇
2025/03/20
4883
Dify 平台的部署
无缝融入,即刻智能[一]:Dify-LLM大模型平台,零编码集成嵌入第三方系统,42K+星标见证专属智能方案
Dify,一款引领未来的开源大语言模型(LLM)应用开发平台,革新性地融合了后端即服务(Backend as a Service,BaaS)与LLMOps的精髓,为开发者铺设了一条从创意原型到高效生产的快车道。其设计旨在打破技术壁垒,让非技术背景的用户也能轻松参与至AI应用的构思与数据运营之中,共同塑造智能未来。
汀丶人工智能
2024/08/17
2.9K0
无缝融入,即刻智能[一]:Dify-LLM大模型平台,零编码集成嵌入第三方系统,42K+星标见证专属智能方案
在MAC系统下安装Docker、Dify以及docker镜像加速
Docker.dmg从页面顶部的下载按钮或发行 说明下载后,在终端中运行以下命令在应用程序文件夹中安装 Docker Desktop:
汀丶人工智能
2024/12/18
8.1K0
在MAC系统下安装Docker、Dify以及docker镜像加速
Dify教程01-Dify是什么、应用场景、如何安装
大家好,我是星哥,上篇文章讲了Coze、Dify、FastGPT、MaxKB 对比,今天就来学习如何搭建Dify。
星哥玩云
2025/04/09
1.6K0
Dify教程01-Dify是什么、应用场景、如何安装
docker部署dify结合deepseek构建知识库
右上角头像 --> 设置 --> 模型供应商,选择 Ollama,轻点“添加模型” --> 模型名称:deepseek-r1:8b, url: http://host.docker.internal:11434 类似的再添加一个嵌入模型:nomic-embed-text
code4it
2025/02/16
1.5K0
ARM 环境中部署 Dify
将下面内容保存为 arm-images.yaml,执行 docker compose -f arm-images.yaml pull 拉取所需镜像:
AlphaHinex
2024/11/25
1.6K1
ARM 环境中部署 Dify
快速搭建dify和deepseek,让普通人也能轻松训练AI
AI已然成为当今的热门话题。过去,由于私有化部署成本极高,大多数使用者仅停留在简单的问答阶段,极少有人尝试训练大模型。然而,随着DeepSeek R1的问世,其部署成本仅为chatGPT的十分之一,这让许多企业和个人看到了参与的希望。未来,必将有越来越多的垂直领域AI大模型或应用出现,这或许是一个巨大的机遇。那么,普通人要如何参与呢?要如何训练自己的AI呢?本文将介绍一种简单且无需编写代码的方法,帮助您轻松训练AI应用。
SRE运维手记
2025/02/20
4191
快速搭建dify和deepseek,让普通人也能轻松训练AI
AI智能体研发之路-工程篇(二):Dify智能体开发平台一键部署
先分享dify项目的github:https://github.com/langgenius/dify
LDG_AGI
2024/08/13
7.6K0
AI智能体研发之路-工程篇(二):Dify智能体开发平台一键部署
Docker入门:使用Docker Compose进行容器编排
我们让应用工作在容器中是非常简单和方便的,但往往一个应用还要依赖数据库、缓存等应用,这样一组应用需要协同启动,同时这样一组应用也要工作在同一个网络中,以便相互访问,并跟不同组的应用之间隔离,以减少干扰,要达到这样的效果,我们需要自己控制好容器创建、启动等等,是一个麻烦的过程,不过官方为我们提供了容器编排工具,Docker Compose让我们可以便捷进行容器编排~
KenTalk
2023/04/07
3.8K0
Docker入门:使用Docker Compose进行容器编排
2C2G的腾讯云服务器如何安装 dify
在上一篇文章Dify学习笔记01:什么是Dify中,我们了解并体验了一下 dify 的云服务。正好还有一台腾讯云的轻量应用服务器,所以本篇文章就开始在服务器上安装 dify。
叫我阿柒啊
2025/03/24
4997
2C2G的腾讯云服务器如何安装 dify
docker部署服务器_docker服务启动
这样子部署好简单,但是我们每次想要修改配置都需要进入容器内部来修改nginx的配置,这样很麻烦,怎么样才能不进入容器直接在外部进行修改呢?(可以使用数据卷 -v的技术)
全栈程序员站长
2022/11/08
2K0
Dify教程02 - Dify+Deepseek零代码赋能,普通人也能开发AI应用
开始今天的教程之前,先解决昨天遇到的一个问题,docker安装Dify的时候有个报错,进入Dify面板的时候会出现“Internal Server Error”的提示,log日志报错:S3_USE_AWS_MANAGED_IAM to S3UseAwsManagedIam: converting '' to type bool.。
星哥玩云
2025/04/10
6040
Dify教程02 - Dify+Deepseek零代码赋能,普通人也能开发AI应用
docker版harbor开机自启
Harbor 是一个企业级的 Docker 私有仓库项目,使用 docker-compose 启动时,它本身由多个 Docker Containers 组成,通过 docker-compose 管理 containers 之间的依赖关系。
小石头
2022/11/10
3K0
使用Docker-Compose搭建高可用redis哨兵集群
出于学习目的,您可以很轻松地在docker环境下运行redis的单个实例,但是如果您需要在生产环境中运行它,那么必须将Redis部署为HA(High Avaliable)模式。
有态度的马甲
2020/04/16
3.5K0
使用Docker-Compose搭建高可用redis哨兵集群
Docker Compose 1.18.0 之服务编排详解
一个使用Docker容器的应用,通常由多个容器组成。使用Docker Compose,不再需要使用shell脚本来启动容器。在配置文件中,所有的容器通过services来定义,然后使用docker-compose脚本来启动,停止和重启应用,和应用中的服务以及所有依赖服务的容器
程序员鹏磊
2018/01/18
1.5K0
Docker Compose 1.18.0 之服务编排详解
LLM大模型部署实战指南:Ollama简化流程,OpenLLM灵活部署,LocalAI本地优化,Dify赋能应用开发
Ollama 是一个开源框架,专为在本地机器上便捷部署和运行大型语言模型(LLM)而设计。,这是 Ollama 的官网地址:https://ollama.com/
汀丶人工智能
2024/08/17
1.5K0
LLM大模型部署实战指南:Ollama简化流程,OpenLLM灵活部署,LocalAI本地优化,Dify赋能应用开发
基于 Deepseek LLM 本地知识库搭建开源方案(AnythingLLM、Cherry、Ragflow、Dify)认知
LLM 本身只是一些 神经网络参数, 就拿 DeepSeek-R1 来讲,模型本身存储了 权重矩阵,以及 混合专家(MoE)架构, 实际运行起来需要行业级别的服务器配置, 消费级别的个人电脑不能直接运行,实际还涉及到硬件适配,需手动配置 CUDA/PyTorch 环境,编写分布式推理代码,处理量化与内存溢出问题
山河已无恙
2025/02/25
1.7K0
基于 Deepseek LLM 本地知识库搭建开源方案(AnythingLLM、Cherry、Ragflow、Dify)认知
玩转 AIGC:Ubuntu 24.04 LTS 安装 Ollama, 体验大模型 Llama3 8B 和 Qwen 32B
今天分享的内容是 玩转 AIGC「2024」 系列文档中的 Ubuntu 24.04 LTS 安装 Ollama, 体验大模型 Llama3 8B 和 Qwen 32B。
运维有术
2024/05/09
6.3K0
玩转 AIGC:Ubuntu 24.04 LTS 安装 Ollama, 体验大模型 Llama3 8B 和 Qwen 32B
python测试开发django-180.docker-compose部署django+mysql环境
部署django项目需用到mysql数据库,还需要自己写一个Dockerfile文件部署django的容器。 多个容器部署的时候可以用到docker-compose 进行容器编排。
上海-悠悠
2021/12/29
8650
推荐阅读
相关推荐
部署Docker&使用Docker在OpenEuler服务器配置RAGFlow
更多 >
LV.1
这个人很懒,什么都没有留下~
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验