一、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-proxy2.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/runc2.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-compose4.2 添加软连接
[aaa@hadoop102 docker]$sudoln-s/opt/module/docker/docker-compose /usr/local/bin/docker-compose4.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/dify5.3 进入到Dify里面的docker
[aaa@hadoop102 docker]$cd/opt/module/dify/docker5.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=256mb5.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 NAMES5.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-proxy6.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/.envEXPOSE_NGINX_PORT=8080docker-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 nginx6.3 登录dify
http://hadoop102:8080/install