Linux 部署轻量化级Docker+Dify本地部署
2026/8/22 10:35:27 网站建设 项目流程

一、docker二进制包下载
官网下载地址:访问官方下载页面 https://download.docker.com/linux/static/stable/x86_64/,下载一个稳定版本,

我下的是docker-24.0.7.tgz。然后上传到linux中。文件大小为 69.8 MB,这是正常的 Docker 二进制包大小

二、解压
2.1 只有几个文件,很少。

[aaa@hadoop102 docker]$sudotar-zxvfdocker-24.0.7.tgz docker/ docker/docker docker/docker-init docker/dockerd docker/runc docker/ctr docker/containerd-shim-runc-v2 docker/containerd docker/docker-proxy

2.2 迁移到/opt/module下

[aaa@hadoop102 docker]$mvdocker/opt/module/

2.3 创建软链接,让系统识别 Docker 命令
这样以后 docker 命令就能全局使用了。

[aaa@hadoop102 docker]$ sudo ln-s/opt/module/docker/docker/usr/bin/docker[aaa@hadoop102 docker]$ sudo ln-s/opt/module/docker/dockerd/usr/bin/dockerd[aaa@hadoop102 docker]$ sudo ln-s/opt/module/docker/containerd/usr/bin/containerd[aaa@hadoop102 docker]$ sudo ln-s/opt/module/docker/runc/usr/bin/runc

2.4 创建 Docker 的 systemd 服务文件

[aaa@hadoop102 docker]$sudovim/etc/systemd/system/docker.service
[Unit]Description=Docker Application Container EngineDocumentation=https://docs.docker.comAfter=network-online.target firewalld.serviceWants=network-online.target[Service]Type=notifyExecStart=/opt/module/docker/dockerdExecReload=/bin/kill-sHUP$MAINPIDLimitNOFILE=infinityLimitNPROC=infinityLimitCORE=infinityTasksMax=infinityTimeoutStartSec=0Delegate=yesKillMode=processRestart=on-failureStartLimitBurst=3StartLimitInterval=60s[Install]WantedBy=multi-user.target

三、启动Docker
首先进入到docker解压后的目录下

# 重新加载 systemd 配置sudosystemctl daemon-reload# 启动 Dockersudosystemctl startdocker# 设置开机自启sudosystemctlenabledocker# 查看运行状态sudosystemctl statusdocker


Docker 启动成功。
3.2 验证

[aaa@hadoop102 docker]$sudodocker--versionDocker version24.0.7, build afdd53b

四、安装 Docker Compose(独立二进制)
4.1 下载并迁移到/opt/module/docker 里面并改名为docker-compose

[aaa@hadoop102 docker]$wgethttps://github.com/docker/compose/releases/download/v5.4.0/docker-compose-linux-x86_64[aaa@hadoop102 docker]$mvdocker-compose-linux-x86_64 /opt/module/docker/docker-compose[aaa@hadoop102 docker]$sudochmod+xdocker-compose

4.2 添加软连接

[aaa@hadoop102 docker]$sudoln-s/opt/module/docker/docker-compose /usr/local/bin/docker-compose

4.3 验证

[aaa@hadoop102 docker]$docker-compose--versionDocker Compose version v5.4.0

五、部署轻量级Dify
5.1 Dify 下载地址:Dify下载地址

5.2 上传到Linux解压,并且移到/opt/module目录下

[aaa@hadoop102 docker]$unzipdify-main.zip[aaa@hadoop102 docker]$mvdify-main /opt/module/dify

5.3 进入到Dify里面的docker

[aaa@hadoop102 docker]$cd/opt/module/dify/docker

5.4 复制环境变量配置文件,并修改参数(轻量级,可选)

[aaa@hadoop102 docker]$cp.env.example .env[aaa@hadoop102 docker]$grep-i"MAX_WORKERS"/opt/module/dify/docker/.envCELERY_MAX_WORKERS=[aaa@hadoop102 docker]$grep-i"VECTOR_STORE"/opt/module/dify/docker/.envVECTOR_STORE=weaviateCOMPOSE_PROFILES=${VECTOR_STORE:-weaviate},${DB_TYPE:-postgresql},collaboration[aaa@hadoop102 docker]$grep-i"REDIS_MAXMEMORY"/opt/module/dify/docker/.env[aaa@hadoop102 docker]$vim.env

修改以下参数:

# 限制 Worker 数量,减少内存占用 MAX_WORKERS=1 # 使用轻量级向量数据库(Chroma 比 Weaviate 更轻量) VECTOR_STORE=chroma # 限制 Redis 内存 REDIS_MAXMEMORY=256mb

5.5 将用户添加到docker组里去
先创建docker组,再添加。测试已经存在。可能需要关闭会话,重新连接新会话。

[aaa@hadoop102 docker]$sudogroupadddocker[aaa@hadoop102 docker]$sudousermod-aGdocker$USER[aaa@hadoop102 docker]$groupsaaa wheeldocker

要修改以下/var/run/docker.sock 的组权限

[aaa@hadoop102 docker]$sudochownroot:docker /var/run/docker.sock[aaa@hadoop102 docker]$sudochmod660/var/run/docker.sock[aaa@hadoop102 docker]$dockerpsCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

5.6 进入 Dify 目录并启动拉取:
先试着拉一个看看

[aaa@hadoop102 docker]$dockerpull docker.1ms.run/nginx:latest latest: Pulling from nginx 26c307b5e35a: Pull complete 746b934a8960: Pull complete 5508f6432d3e: Pull complete 5d480233f531: Pull complete f530c3e421fc: Pull complete 128fcc7b23b0: Pull complete 7eb55399d6de: Pull complete Digest: sha256:8f029c543423e3eac6b08254718bc31eb75633b1e448026b6616927baa7d4bfe Status: Downloaded newer imagefordocker.1ms.run/nginx:latest docker.1ms.run/nginx:latest

成功。

后面拉核心的就行:

[aaa@hadoop102 docker]$docker-composeup-dapi worker web db_postgres redis sandbox local_sandbox plugin_daemon agent_backend nginx


因为拉取的国外网站的资源,很慢。我这里提供另一种辅助拉取的方法。
一个dget工具,是go语言写的。
dget下载地址是这个
下载完之后直接将它放在单独的文件夹内,然后从那个文件夹进入到cmd里面,拉取命令如下:(dify-agent-local-sandbox:1.16.1)

D:\software\dget>dget.exedocker.1ms.run/langgenius/dify-agent-local-sandbox:1.16.1




然后在传到Linux上,用docker重新加载就行。

[aaa@hadoop102 docker]$dockerload-idify-agent-backend_1.16.1-img.tar.gz


因为一个手动离线拉取,一个是docker自己拉取,导致前缀不一样,需要改成一样的。这里我是将docker.1ms.run/去掉,因为它是一个加速器,官方标准里面是没有的。

修改如下:

[aaa@hadoop102 docker]$dockertag docker.1ms.run/redis:6-alpine redis:6-alpine[aaa@hadoop102 docker]$dockerimages

六、其他问题:
6.1 docker-proxy 这个二进制文件没有正确安装或没有在 PATH 中

[aaa@hadoop102 docker]$sudoln-s/opt/module/docker/docker-proxy /usr/bin/docker-proxy

6.2 宿主机的 80 端口已被占用
1)先修改docker-compose.yaml 中 nginx 部分的内容:

ports:-"${EXPOSE_NGINX_PORT:-8080}:${NGINX_PORT:-8080}"-"${EXPOSE_NGINX_PORT:-443}:${NGINX_SSL_PORT:-443}"

2)再改.env里的内容

[aaa@hadoop102 docker]$grepEXPOSE_NGINX_PORT /opt/module/dify/docker/.env
EXPOSE_NGINX_PORT=8080
docker-composedown nginxdocker-composeup-dapi worker web db_postgres redis sandbox local_sandbox plugin_daemon agent_backend nginx

记住:启动的时候,一定要只启动相关的核心服务,如果是一键启动,它会将你之前没下载的服务也拉取,那样会得不偿失。(共15个核心)
启动命令如下:

[aaa@hadoop102 docker]$docker-composeup-dapi worker web db_postgres redis sandbox local_sandbox plugin_daemon agent_backend nginx

6.3 登录dify

http://hadoop102:8080/install

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询