Linux Containers on macOS: Colima, Apple container, OrbStack

macOS 内核不能直接跑 Linux 容器,所有方案都是先起一个 Linux 虚拟机,再在里面跑容器运行时。区别在于虚拟机怎么起、几个容器共用一台虚拟机、对外提供什么 CLI。 分层 层级 例子 作用 容器运行时 containerd、Docker Engine 拉镜像、起容器,跑在 Linux 里 Mac 上的 Linux 环境 Colima(基于 Lima)、Apple container、OrbStack、Docker Desktop 在 macOS 上提供 Linux 虚拟机,并把 CLI 暴露给宿主 CLI nerdctl、docker、container 用户敲的命令 containerd 和 Colima 不是同一类东西:containerd 是引擎,Colima 负责给 containerd 准备一台 Linux 虚拟机。 Colima 基于 Lima,所有容器共用一台 Linux 虚拟机 运行时可选 docker 或 containerd,选 containerd 时用 nerdctl,和 Linux 服务器上的用法一致 支持 compose(nerdctl compose 或 docker compose),可选内置 k3s MIT 协议,商用免费,只有 CLI brew install colima # native arm64 VM, use Rosetta for amd64 images colima start --arch aarch64 --vm-type vz --vz-rosetta --runtime containerd colima nerdctl -- run --rm hello-world colima list colima stop 注意 --arch x86_64 会让整台虚拟机走模拟,在 Apple Silicon 上很慢。需要 amd64 镜像时,用 arm64 虚拟机加 --platform linux/amd64 构建即可。 ...

Created 15156-10-15 · Updated 15156-10-15 · 2 min · 252 words · -

Homebrew (brew)

简介 Homebrew 是 macOS 上最流行的包管理器,用于安装和管理命令行工具及应用程序。 brew 会把软件安装在用户主目录里,不需要 sudo brew(formula)装的主要是命令行工具 brew cask 装的大多是有 GUI 界面的 app 以及驱动 Formula 与 Cask 的区别 两者的本质区别是安装方式,不是有没有 GUI: formula:需要从源码编译或解压二进制的工具,brew 完全管理其生命周期 cask:处理 .dmg、.pkg、.zip(含 .app)这类"分发包",安装时需要复制到 /Applications、注册 UTI、处理系统权限等,安装/卸载逻辑与 formula 完全不同 两套安装逻辑分开,互不干扰,也便于用户区分"这是个 CLI 工具"还是"这是个桌面 App"。 实际使用中的经验规律: 类型 典型情况 例外 formula(不加 --cask) 命令行工具、库 极少数带 GUI cask(--cask) GUI 桌面 App google-cloud-sdk、android-platform-tools 等纯 CLI 官方说法是:cask 用于安装"macOS native apps and large binaries",重点是分发形式(预编译的大型安装包),而不是有没有界面。 Homebrew 术语表(酿酒比喻) Homebrew 整个项目名叫"家酿啤酒",术语全部来自酿酒场景: 术语 酿酒含义 对应概念 formula 配方 软件的安装脚本 keg 酒桶 安装后的目录(/usr/local/Cellar/<pkg>) cellar 酒窖 所有已安装包的存放处 tap 水龙头(接上一个新酒桶) 接入一个新的软件仓库 cask 大木桶(装整瓶酒) 完整的 macOS App bottle 预先装好的瓶子 预编译的二进制包 安装与卸载 brew # 安装 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" # 卸载 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall.sh)" 常用命令 # 搜索 brew search foo # 安装 brew install ansible brew install --cask obsidian # 卸载 brew uninstall packageName # 列出已安装的包 brew list # 查看所有需要更新的包 brew outdated # 更新某一个包 brew upgrade package0 # 更新所有包,相当于 Arch Linux 的 pacman -Syu # brew upgrade 会自动先执行 brew update 刷新 formula 列表,再升级所有包 brew upgrade # 配置信息 brew config # 检查系统问题 brew doctor 不认识的包怎么查 brew upgrade 或 brew outdated 里经常出现一些不认识的包名,多数是别的软件的依赖,被顺带装上。按下面的顺序查: ...

Created 11116-06-11 · Updated 22226-09-22 · 3 min · 429 words · -

UTM: Virtual Machines on macOS

简介 UTM 是 macOS / iOS 上的开源虚拟机,底层是 QEMU,也可以改用 Apple Virtualization Framework。 和 Parallels Desktop、VMware Fusion Pro 的对比见 macOS Virtual Machines。同架构 Linux 应优先开 Apple Virtualization,不要用 QEMU 仿真。 Gallery 里开 Arch Linux ARM browse UTM gallery > archlinux arm > open in UTM 默认用户 / 密码:root / root 共享目录(9p) 在 Linux 客户机里: sudo mkdir -p /mnt/share sudo mount -t 9p -o trans=virtio hostshare /mnt/share Use Apple Virtualization 用 Apple 自家的虚拟化框架(Apple Virtualization Framework)跑虚拟机,而不是 QEMU 仿真(emulation): ...

Created 22226-02-22 · Updated 31316-08-31 · 1 min · 142 words · -

macOS Virtual Machines: Parallels Desktop, Fusion Pro, UTM

背景 Apple Silicon(M 系列)之后,Mac 上不能再用 Boot Camp 装 Windows。日常要跑另一套操作系统,只能走虚拟机。 选型时先分清两件事: 宿主机和客户机是不是同一套 CPU 架构。同架构(Apple Silicon 上跑 ARM Linux / Windows 11 ARM)走硬件虚拟化,接近本机速度。跨架构(在 M 系列上跑完整的 x86 Windows / Linux)要做指令仿真,会慢很多。 要的是「每天用 Windows 应用」,还是「偶尔起一台 Linux / 旧系统 / 别的架构」。 下面三款是目前 macOS 上最常见的选择。软件列表里的入口见 macos apps。UTM 的具体操作(Gallery、9p 共享目录、Apple Virtualization、从 kernel 启动)见 UTM。QEMU 本身见 QEMU。 怎么选 每天要在 Mac 上用 Windows 应用(Office 插件、Visio、部分工程软件):Parallels Desktop。它是目前 Microsoft 授权在 Apple Silicon 上跑 Windows 11 Pro / Enterprise 的方案,Coherence、剪贴板、文件夹共享、显卡加速都更完整。 不想付钱、能接受自己下 ISO / 配网卡、偶尔用 Windows 或经常跑 Linux:VMware Fusion Pro。2025 年 3 月起对个人、教育和商业用途都免费。 要开源、要仿真 x86 / 旧系统 / RISC-V 等、或只是起一台 ARM Linux:UTM。 三款都不包含 Windows 许可证。Windows 要单独激活。 ...

Created 31316-08-31 · Updated 31316-08-31 · 3 min · 548 words · -