在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 中找到。

相关推荐
肥肥呀呀呀8 分钟前
mac电脑可以使用的模拟器
flutter·macos
又起风了12 分钟前
Mac charles报错 invalid keystore format
macos·charles
KevinAha14 分钟前
MacOS 上以源码形式安装 MySQL 5.7
mysql·macos
BLEACH-heiqiyihu3 小时前
docker仓库数据传输加密
运维·docker·容器
半__夏3 小时前
什么是docker,docker解决了什么问题
运维·docker·容器
Swift社区5 小时前
LeetCode - #163 缺失的区间(会员题)
macos
十月ooOO5 小时前
Docker 学习笔记(持续更新)
笔记·学习·docker
蜜獾云6 小时前
docker springboot 运维部署详细实例
运维·docker·容器
{⌐■_■}7 小时前
【docker】容器编排之docker swarm
运维·docker·容器