本次部署在CentOS的服务器中,使用 docker 部署 ollama + Dify + RagFlow ,具体过程如下:

一、安装Docker以及Docker Compose:

1、安装前准备

在安装Docker与Docker-Compose之前,有可能服务器中有安装旧版本的Docker,需要先进行卸载

sudo yum remove docker docker-common docker-selinux docker-engine

2、安装Docker

在安装Docker之前,需要先安装一些依赖包。

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

添加Docker的官方源,下载并安装最新版本的Docker。

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

通过yum命令安装Docker。

sudo yum install docker-ce docker-ce-cli containerd.io

启动Docker服务。

sudo systemctl start docke

3、安装Dockers Compose

Docker-Compose可以通过二进制安装的方式进行安装。首先需要下载对应版本的Docker-Compose二进制文件,并将其添加到系统路径中。

下载Docker-Compose二进制文件

curl -L "https://github.com/docker/compose/releases/download/v2.2.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

添加执行权限

chmod +x /usr/local/bin/docker-compose

验证安装是否成功

$ docker-compose --version

二、安装Docker可视化界面Portainer

先搜索资源

$ docker search portainer

拉取镜像

$ docker pull portainer/portainer

创建容器

$ docker run -d -p 9000:9000 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer

查看是否启动成功

docker ps -a

运行,浏览器打开

http://<Your Servier IP>:9000

三、安装Ollama

安装Ollama,并使用GPU加速

docker run -d --gpus=all -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama

四、运行DeepSeek

从Ollama安装并运行DeepSeek,这里以70b为例

docker exec -it ollama ollama run deepseek-r1:70b

五、安装dify

首先从Dify的代码仓库克隆Dify的源代码至本地环境

# 假设当前最新版本为 0.15.3
git clone https://github.com/langgenius/dify.git --branch 0.15.3

启动Dify

进入Dify源代码的Docker目录

cd dify/docker

复制环境配置文件

cp .env.example .env

启动 Docker 容器

根据你系统上的 Docker Compose 版本,选择合适的命令来启动容器。你可以通过 $ docker compose version 命令检查版本,详细说明请参考 Docker 官方文档

如果版本是 Docker Compose V2,使用以下命令:

$ docker compose up -d

如果版本是 Docker Compose V1,使用以下命令:

$ docker-compose up -d

运行命令后,你应该会看到类似以下的输出,显示所有容器的状态和端口映射:

[+] Running 11/11
 ✔ Network docker_ssrf_proxy_network  Created                                                                 0.1s 
 ✔ Network docker_default             Created                                                                 0.0s 
 ✔ Container docker-redis-1           Started                                                                 2.4s 
 ✔ Container docker-ssrf_proxy-1      Started                                                                 2.8s 
 ✔ Container docker-sandbox-1         Started                                                                 2.7s 
 ✔ Container docker-web-1             Started                                                                 2.7s 
 ✔ Container docker-weaviate-1        Started                                                                 2.4s 
 ✔ Container docker-db-1              Started                                                                 2.7s 
 ✔ Container docker-api-1             Started                                                                 6.5s 
 ✔ Container docker-worker-1          Started                                                                 6.4s 
 ✔ Container docker-nginx-1           Started                                                                 7.1s

最后检查是否所有容器都正常运行

docker compose ps

访问Dify

因为Dify是默认80端口,所以直接访问你的服务器ip就能打开,你可以先前往管理员初始化页面设置设置管理员账户

# 本地环境
http://localhost/install

# 服务器环境
http://your_server_ip/install

然后访问主页面

# 本地环境
http://localhost

# 服务器环境
http://your_server_ip

六、安装RagFlow

确保 vm.max_map_count 不小于 262144

如需确认 vm.max_map_count 的大小:

sysctl vm.max_map_count

如果 vm.max_map_count 的值小于 262144,可以进行重置:

# 这里我们设为 262144 :
sudo sysctl -w vm.max_map_count=262144

你的改动会在下次系统重启时被重置。如果希望做永久改动,还需要在 /etc/sysctl.conf 文件里把 vm.max_map_count 的值再相应更新一遍:

vm.max_map_count=262144

下载RagFlow源代码

$ git clone https://github.com/infiniflow/ragflow.git
$ cd ragflow/docker
$ git checkout -f v0.17.2

注意:RagFlow 与 Dify 同样使用的是80端口

我这修改RagFlow的端口映射:

  • 进入RagFlow的docker目录下

    cd ragflow/docker
  • 修改docker-compose.yml

    services:
      ragflow:
        depends_on:
          mysql:
            condition: service_healthy
        image: ${RAGFLOW_IMAGE}
        container_name: ragflow-server
        ports:
          - ${SVR_HTTP_PORT}:9380
          - 8000:80
          - 4433:443

启动之前,由于RagFlowDifyredis会产生冲突,这里的解决方法是为每个项目设置唯一的 Docker Compose 项目名称,使用 -p 参数为每个项目指定独特的 Docker Compose 项目名称,确保容器和网络资源相互独立:

$ docker compose -f docker-compose-gpu.yml -p ragflow up -d
$ docker compose -f docker-compose.yaml -p dify up -d

使用CPU或者GPU的启动方式命令如下

# Use CPU for embedding and DeepDoc tasks:
$ docker compose -f docker-compose.yml -p ragflow up -d

# To use GPU to accelerate embedding and DeepDoc tasks:
$ docker compose -f docker-compose-gpu.yml -p ragflow up -d

服务器启动并运行后检查服务器状态:

$ docker logs -f ragflow-server

以下输出确认系统启动成功:

     ____   ___    ______ ______ __
    / __ \ /   |  / ____// ____// /____  _      __
   / /_/ // /| | / / __ / /_   / // __ \| | /| / /
  / _, _// ___ |/ /_/ // __/  / // /_/ /| |/ |/ /
 /_/ |_|/_/  |_|\____//_/    /_/ \____/ |__/|__/

 * Running on all addresses (0.0.0.0)

在浏览器中,输入服务器的 IP 地址以及之前修改的端口号并登录 RAGFlow。

http://<Your Servier IP>:8000

至此,所有组件安装完成