在MAC系统下安装Docker、Dify以及docker镜像加速

在MAC系统下安装Docker、Dify

1.Docker安装

桌面左上角-关于本机

1.1 交互式安装

  1. 使用页面顶部的下载按钮或从 发行说明中下载安装程序。

  2. 双击Docker.dmg打开安装程序,然后将 Docker 图标拖到应用程序文件夹中。默认情况下,Docker Desktop 安装在/Applications/Docker.app。

  3. 双击应用程序Docker.app文件夹以启动 Docker。

  4. Docker菜单显示Docker订阅服务协议。以下是主要要点的总结:

    • Docker Desktop 可免费供小型企业(员工少于 250 人且年收入少于 1000 万美元)、个人使用、教育和非商业开源项目使用。
    • 否则,专业使用需要付费订阅。
    • 政府实体也需要付费订阅。
    • Docker Pro、Team 和 Business 订阅包括 Docker Desktop 的商业用途。
  5. 选择"接受"继续。

    请注意,如果您不同意条款,Docker Desktop 将无法运行。您可以稍后打开 Docker Desktop 来选择接受条款。

  6. 在安装窗口中,选择:

    • 使用推荐设置(需要密码)。这会让 Docker Desktop 自动设置必要的配置设置。
    • 使用高级设置。然后,您可以在系统或用户目录中设置 Docker CLI 工具的位置,启用默认 Docker 套接字,并启用特权端口映射。 有关更多信息以及如何设置 Docker CLI 工具的位置,请参阅设置。
  7. 选择"完成"。如果您已在步骤 6 中应用任何需要密码的先前配置,请输入密码以确认您的选择。

1.2 从命令行安装

Docker.dmg从页面顶部的下载按钮或发行 说明下载后,在终端中运行以下命令在应用程序文件夹中安装 Docker Desktop:

bash 复制代码
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 镜像下载难题:掌握高效下载策略,畅享无缝开发体验

python 复制代码
{
  "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 源代码至本地环境。

python 复制代码
#进入目录
cd LLM
git clone https://github.com/langgenius/dify.git

进入 Dify 源代码的 Docker 目录,复制环境配置文件

python 复制代码
cd dify/docker
cp .env.example .env
  • 启动 Docker 容器

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

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

    python 复制代码
     docker compose up -d
  • 如果版本是 Docker Compose V1,使用以下命令:

    python 复制代码
     docker-compose up -d

如果没配置docker镜像会报错,网络问题!!! 回到章节配置

bash 复制代码
+] 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

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

bash 复制代码
[+] 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 

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

bash 复制代码
docker compose ps

在这个输出中,你应该可以看到包括 3 个业务服务 api / worker / web,以及 6 个基础组件 weaviate / db / redis / nginx / ssrf_proxy / sandbox

bash 复制代码
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 目录,按顺序执行以下命令:

bash 复制代码
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

你可以先前往管理员初始化页面设置设置管理员账户:

bash 复制代码
# 本地环境
http://localhost/install
# 服务器环境
http://your_server_ip/install

Dify 主页面:

bash 复制代码
# 本地环境
http://localhost

# 服务器环境
http://your_server_ip

然后进行注册账号即可使用了



  • 自定义配置

编辑 .env 文件中的环境变量值。然后重新启动 Dify:

bash 复制代码
docker compose down
docker compose up -d

完整的环境变量集合可以在 docker/.env.example 中找到。

相关推荐
ldj20203 小时前
Docker的docker-compose类比Spring的ApplicationContext
spring·docker
ldj20203 小时前
docker 自定义网桥作用
docker·容器
土豆丶杨5 小时前
centos 配置docker
docker·eureka·centos
岁忧5 小时前
macOS 安装 Homebrew
macos·homebrew
杰哥的狗5 小时前
nacos连接失败,启动失败常见问题
linux·docker
DarkAthena6 小时前
【GaussDB】构建一个GaussDB的Docker镜像
数据库·docker·gaussdb
棒棒AIT6 小时前
mac 苹果电脑 Intel 芯片(Mac X86) 安卓虚拟机 Android模拟器 的救命稻草(下载安装指南)
android·游戏·macos·安卓·mac
张火火isgudi10 小时前
CentOS8 使用 Docker 搭建 Jellyfin 家庭影音服务器
服务器·docker·容器
qq_4477053111 小时前
宝塔通过docker部署JupyterHub指南【常见错误处理】
运维·docker·容器
tanxiaomi11 小时前
docker 从主机复制文件到容器外进行编辑
运维·docker·容器