在MAC系统下安装Docker、Dify
1.Docker安装
桌面左上角-关于本机
1.1 交互式安装
使用页面顶部的下载按钮或从 发行说明中下载安装程序。
双击Docker.dmg打开安装程序,然后将 Docker 图标拖到应用程序文件夹中。默认情况下,Docker Desktop 安装在/Applications/Docker.app。
双击应用程序Docker.app文件夹以启动 Docker。
Docker菜单显示Docker订阅服务协议。以下是主要要点的总结:
- Docker Desktop 可免费供小型企业(员工少于 250 人且年收入少于 1000 万美元)、个人使用、教育和非商业开源项目使用。
- 否则,专业使用需要付费订阅。
- 政府实体也需要付费订阅。
- Docker Pro、Team 和 Business 订阅包括 Docker Desktop 的商业用途。
选择“接受”继续。
请注意,如果您不同意条款,Docker Desktop 将无法运行。您可以稍后打开 Docker Desktop 来选择接受条款。在安装窗口中,选择:
使用推荐设置(需要密码)
。这会让 Docker Desktop 自动设置必要的配置设置。- 使用高级设置。然后,您可以在系统或用户目录中设置 Docker CLI 工具的位置,启用默认 Docker 套接字,并启用特权端口映射。 有关更多信息以及如何设置 Docker CLI 工具的位置,请参阅设置。
选择“完成”。如果您已在步骤 6 中应用任何需要密码的先前配置,请输入密码以确认您的选择。
1.2 从命令行安装
Docker.dmg从页面顶部的下载按钮或发行 说明下载后,在终端中运行以下命令在应用程序文件夹中安装 Docker Desktop:
sudo hdiutil attach Docker.dmg
sudo /Volumes/Docker/Docker.app/Contents/MacOS/install
sudo hdiutil detach /Volumes/Docker
默认情况下,Docker Desktop 安装在/Applications/Docker.app。由于 macOS 通常在第一次使用应用程序时执行安全检查,因此该install命令可能需要几分钟才能运行。
该install命令接受以下标志:
- –accept-license:立即接受 Docker订阅服务协议,而不是要求在应用程序首次运行时接受。
- –allowed-org=:运行应用程序时要求用户登录并成为指定 Docker Hub 组织的一部分
- –user=:在安装过程中执行一次特权配置。这样用户就无需在首次运行时授予 root 权限。有关更多信息,请参阅 特权助手权限要求。要查找用户名,请ls /Users在 CLI 中输入。
- –admin-settings:自动创建一个admin-settings.json文件,供管理员用来控制其组织内客户端计算机上的某些 Docker Desktop 设置。有关更多信息,请参阅 设置管理。
- 必须和旗帜一起使用–allowed-org=。
- 例如:–allowed-org= --admin-settings=“{‘configurationFileVersion’: 2, ‘enhancedContainerIsolation’: {‘value’: true, ‘locked’: false}}”
- –proxy-http-mode=:设置 HTTP 代理模式。两种模式为system(默认) 或manual。
- –override-proxy-http=:设置传出 HTTP 请求必须使用的 HTTP 代理的 URL。它必须–proxy-http-mode是manual。
- –override-proxy-https=:设置传出 HTTPS 请求必须使用的 HTTP 代理的 URL,–proxy-http-mode需要manual
- –override-proxy-exclude=<hosts/domains>:绕过主机和域的代理设置。这是一个以逗号分隔的列表。
2. Docker镜像设置
为 Docker 虚拟机(VM)至少分配 2 个虚拟 CPU(vCPU) 和 8GB 初始内存,否则安装可能会失败。
参考文章:告别DockerHub 镜像下载难题:掌握高效下载策略,畅享无缝开发体验
{
"builder": {
"gc": {
"defaultKeepStorage": "20GB",
"enabled": true
}
},
"experimental": false,
"features": {
"buildkit": true
},
"registry-mirrors": [
"https://dockerpull.org",
"https://docker.1panel.dev",
"https://docker.foreverlink.love",
"https://docker.fxxk.dedyn.io",
"https://docker.xn--6oq72ry9d5zx.cn",
"https://docker.zhai.cm",
"https://docker.5z5f.com",
"https://a.ussh.net",
"https://docker.cloudlayer.icu",
"https://hub.littlediary.cn",
"https://hub.crdz.gq",
"https://docker.unsee.tech",
"https://docker.kejilion.pro",
"https://registry.dockermirror.com",
"https://hub.rat.dev",
"https://dhub.kubesre.xyz",
"https://docker.nastool.de",
"https://docker.udayun.com",
"https://docker.rainbond.cc",
"https://hub.geekery.cn",
"https://docker.1panelproxy.com",
"https://atomhub.openatom.cn",
"https://docker.m.daocloud.io",
"https://docker.1ms.run",
"https://docker.linkedbus.com"
]
}
3.Dify安装/使用
3.1 启动dify
- 前提条件
安装 Dify 之前, 请确保你的机器已满足最低安装要求:
- CPU >= 2 Core
- RAM >= 4 GiB
- macOS 10.14 or later
打开mac终端,执行指令,克隆 Dify 代码仓库,克隆 Dify 源代码至本地环境。
#进入目录
cd LLM
git clone https://github.com/langgenius/dify.git
进入 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
如果没配置docker镜像会报错,网络问题!!! 回到章节配置
+] Running 9/9
✘ nginx Error context canceled 2.3s
✘ sandbox Error context canceled 2.3s
✘ api Error context canceled 2.3s
✘ weaviate Error context canceled 2.3s
✘ worker Error context canceled 2.3s
✘ redis Error context canceled 2.3s
✘ db Error context canceled 2.3s
✘ ssrf_proxy Error context canceled 2.3s
✘ web Error Head "https://registry-1.docker.io/v2/langgenius/dify-web/manifests/0.14.0": EOF 2.3s
Error response from daemon: Head "https://registry-1.docker.io/v2/langgenius/dify-web/manifests/0.14.0": EOF
运行命令后,你应该会看到类似以下的输出,显示所有容器的状态和端口映射:
[+] Running 11/11
✔ Network docker_default Created 0.0s
✔ Network docker_ssrf_proxy_network Created 0.0s
✔ Container docker-redis-1 Started 0.9s
✔ Container docker-db-1 Started 0.9s
✔ Container docker-ssrf_proxy-1 Started 0.9s
✔ Container docker-sandbox-1 Started 0.9s
✔ Container docker-weaviate-1 Started 0.9s
✔ Container docker-web-1 Started 0.9s
✔ Container docker-worker-1 Started 0.6s
✔ Container docker-api-1 Started 0.6s
✔ Container docker-nginx-1 Started 0.8s
最后检查是否所有容器都正常运行:
docker compose ps
在这个输出中,你应该可以看到包括 3 个业务服务 api / worker / web
,以及 6 个基础组件 weaviate / db / redis / nginx / ssrf_proxy / sandbox
。
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
docker-api-1 langgenius/dify-api:0.14.0 "/bin/bash /entrypoi…" api 34 seconds ago Up 33 seconds 5001/tcp
docker-db-1 postgres:15-alpine "docker-entrypoint.s…" db 34 seconds ago Up 33 seconds (healthy) 5432/tcp
docker-nginx-1 nginx:latest "sh -c 'cp /docker-e…" nginx 34 seconds ago Up 33 seconds 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp
docker-redis-1 redis:6-alpine "docker-entrypoint.s…" redis 34 seconds ago Up 33 seconds (healthy) 6379/tcp
docker-sandbox-1 langgenius/dify-sandbox:0.2.10 "/main" sandbox 34 seconds ago Up 33 seconds (healthy)
docker-ssrf_proxy-1 ubuntu/squid:latest "sh -c 'cp /docker-e…" ssrf_proxy 34 seconds ago Up 33 seconds 3128/tcp
docker-weaviate-1 semitechnologies/weaviate:1.19.0 "/bin/weaviate --hos…" weaviate 34 seconds ago Up 33 seconds
docker-web-1 langgenius/dify-web:0.14.0 "/bin/sh ./entrypoin…" web 34 seconds ago Up 33 seconds 3000/tcp
docker-worker-1 langgenius/dify-api:0.14.0 "/bin/bash /entrypoi…" worker 34 seconds ago Up 33 seconds 5001/tcp
通过这些步骤,你应该可以成功在本地安装 Dify。
3.2 更新 Dify
进入 dify 源代码的 docker 目录,按顺序执行以下命令:
cd dify/docker
docker compose down
git pull origin main
docker compose pull
docker compose up -d
同步环境变量配置 (重要!)
如果
.env.example
文件有更新,请务必同步修改你本地的.env
文件。检查
.env
文件中的所有配置项,确保它们与你的实际运行环境相匹配。你可能需要将.env.example
中的新变量添加到.env
文件中,并更新已更改的任何值。
3.3 访问 Dify
你可以先前往管理员初始化页面设置设置管理员账户:
# 本地环境
http://localhost/install
# 服务器环境
http://your_server_ip/install
Dify 主页面:
# 本地环境
http://localhost
# 服务器环境
http://your_server_ip
然后进行注册账号即可使用了
- 自定义配置
编辑 .env
文件中的环境变量值。然后重新启动 Dify:
docker compose down
docker compose up -d
完整的环境变量集合可以在 docker/.env.example
中找到。