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 · -

nerdctl

nerdctl nerdctl 是 containerd 的命令行客户端工具,它提供了与 Docker CLI 兼容的用户体验。 什么是 nerdctl containerd 的 CLI 工具:nerdctl 全称是 “non-enterprise control”(或 containerd ctl) Docker 兼容:命令语法与 docker 命令高度兼容,降低学习成本 CNCF 项目:由 containerd 社区开发和维护 功能丰富:支持 Docker 不支持的一些高级功能 主要特性 1. Docker 兼容性 nerdctl 的命令与 docker 几乎完全兼容,可以无缝切换: # Docker 命令 docker run -d -p 80:80 nginx docker ps docker images docker build -t myapp . # nerdctl 命令(完全相同) nerdctl run -d -p 80:80 nginx nerdctl ps nerdctl images nerdctl build -t myapp . 2. 增强功能 nerdctl 支持一些 Docker 不支持的高级特性: ...

Created 29296-04-29 · Updated 29296-04-29 · 7 min · 1334 words · -