macos - 如何在一台非常老的 Mac 上安装和运行 Docker Desktop 和 DDEV?

标签 macos docker ddev

Apple 仅支持前两个主要操作系统版本。这导致 Docker 和 Homebrew 放弃了对它们的支持。在撰写本文时,macOS Monterey 是当前版本,而最后支持的版本是 macOS Catalina。对于 macOS Catalina,最低硬件要求是 MacBook Pro/Air 2012 年中。许多仍然不错的计算机都未能通过光栅。但是如何在只能运行例如 macOS High Sierra tops 的旧 Mac 上设置 Docker 和 DDEV。

最佳答案

<强>1。安装 Docker

要查找不再支持的先前版本,您必须转到 https://docs.docker.com/desktop/mac/release-notes/2.x/ .对于 High Sierra,最后支持的版本是 Docker Desktop Community 2.4.0.0。在 https://docs.docker.com/desktop/mac/release-notes/archive/ 上有适用于更旧版本 MacOS 的版本.

<强>2。设置 Docker

安装后转到 Docker 首选项并进入资源选项卡。默认值通常适用于较小的项目。如果你有可用的硬件资源,一个非常简单的性能调整就是将 Docker 的 RAM 限制增加到板顶可用数量的一半。如果您的计算机有超过 2 个可用的 CPU 内核,调整可用内核的限制以减轻高 I/O 负载也是有意义的。 一般来说,您应该尝试一下这些设置,看看什么能带来最好的用户体验。除了感知体验之外,docker stats 提供了进一步的线索,表明运行的 ddev 设置消耗了哪些资源。在那里您可以看到使用了多少 CPU,消耗了多少内存,以及网络 i/o 和 block i/o 以及 PIDS。总而言之,您可以调整并使用分配的资源,直到达到日常使用的最佳位置。 最后,您还应确保“磁盘镜像位置”路径以文件类型 Docker.raw 结尾,以确保您使用的是最新的镜像格式以提高性能。如果后缀是其他内容,请转到 ~/Library/Group Containers/group.com.docker/settings.json 并更改 .qcow2 中的 filePath 属性.raw

<强>3。在没有 Homebrew 的情况下安装 DDEV 和 MKCERT

由于旧版本的 MacOS 不再支持 Homebrew,因此安装或更新到最新版本的 DDEV 和 MKCERT 最方便的选择是在终端中下载并运行以下行:

curl -LO https://raw.githubusercontent.com/drud/ddev/master/scripts/install_ddev.sh && bash install_ddev.sh

<强>4。为 DDEV 全局激活 Mutagen

随着 DDEV 1.8.0 的发布,引入了使用 Mutagen 代替 NFS 文件系统的选项。这显着提升了旧 Mac 的性能,使它们可以再次与 Docker 一起使用。只需在终端中输入以下行。

ddev config global --mutagen-enabled`

该行在 ~/.ddev/global_config.yaml 中创建全局设置文件,并默认为每个 future 项目启用 Mutagen。因此,您不必担心为每个新创建的项目记住激活 Mutagen。可以在 global_config.yaml 文件中手动将 nfs_mount_enabled 设置为 false

<强>5。设置 DDEV 项目

现在创建一个空文件夹并运行以下命令:

ddev config

并根据您的需要配置项目以使用该文件夹和 DDEV 并启动它

ddev start

如果您打算使用 Composer,最后一个与性能相关的评论。强烈建议使用 Composer 2。DDEV 提供了使用版本 1 或 2 的能力——默认设置为版本 2。要查看版本 2 是否处于事件状态,只需使用以下命令检查正在运行的 Web 容器中的 Composer 版本:

ddev . composer --version

关于macos - 如何在一台非常老的 Mac 上安装和运行 Docker Desktop 和 DDEV?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69964994/

相关文章:

macos - 在 OSX bash 中打印回车

macos - 在OSX上手动共享目录作为Docker卷安装点

c# - 在 Linux 应用服务上的 docker 容器中运行 .Net Core 控制台应用程序

typo3 - 为什么我应该只使用 DDEV 进行本地开发?

database - 在没有数据库的情况下运行 ddev

macos - 如何让 NSTableView 将自定义单元格 View 与预设单元格 View 混合使用?

macos - 使用 Javascript for Automation (JXA) 通过 Messages.app 发送 iMessage

git - 在另一个公共(public) GitHub 存储库更改上触发自动 Docker Hub 构建

node.js - 幻影 JS + Docker : html font-family is not respected when converting from HTML

composer-php - 将 xdebug 与 drush 命令一起使用