Colima 是 macOS 上一个轻量级的容器运行环境管理工具。它基于 Lima 启动 Linux 虚拟机,在虚拟机里运行 Docker、containerd 或 Kubernetes,让 macOS 可以像 Linux 一样使用容器。

对很多开发者来说,Colima 最常见的用途是替代 Docker Desktop:保留熟悉的 docker 命令,同时减少桌面应用、后台服务和资源占用带来的负担。

为什么需要 Colima

macOS 不能直接运行 Linux 容器。Docker Desktop 的做法是在本机启动一个 Linux 虚拟机,再把 Docker Engine、网络、文件共享和命令行体验封装起来。

Colima 做的是类似的事,但更轻量,也更偏命令行:

  • 没有常驻的桌面 UI。
  • 配置方式清晰,主要通过 colima start 参数或配置文件完成。
  • 可以按项目需要控制 CPU、内存、磁盘和架构。
  • 支持 Docker、containerd,也可以启用 Kubernetes。
  • 和 Docker CLI、Docker Compose 的日常使用方式兼容。

如果你只需要在本地构建镜像、跑数据库、启动开发依赖,Colima 通常已经足够。

安装

使用 Homebrew 安装:

brew install colima docker docker-compose docker-completion

其中:

  • colima 负责管理 Linux 虚拟机和容器运行时。
  • docker 提供 Docker CLI。
  • docker-compose 提供 Compose 插件或命令,具体取决于安装方式和版本。

安装完成后可以查看版本:

colima version
docker version

启动 Docker 环境

最简单的启动方式:

colima start

启动完成后,直接使用 Docker:

docker ps
docker run --rm hello-world

停止 Colima:

colima stop

查看状态:

colima status

常用配置

Colima 启动时可以指定资源:

colima start --cpu 4 --memory 8 --disk 60

含义分别是:

  • --cpu 4:分配 4 个 CPU。
  • --memory 8:分配 8 GB 内存。
  • --disk 60:分配 60 GB 磁盘空间。

Apple Silicon 机器上,有时需要指定架构。例如某些镜像只提供 amd64

colima start --arch x86_64

默认情况下,Apple Silicon 更推荐使用原生架构:

colima start --arch aarch64

如果你经常构建镜像或运行比较重的开发环境,可以把 CPU、内存和磁盘调大一些。普通 Web 项目通常 2 到 4 个 CPU、4 到 8 GB 内存就够用。

使用 Docker Compose

Colima 启动后,Compose 的使用方式和平时一样:

docker compose up -d
docker compose ps
docker compose logs -f
docker compose down

如果系统里安装的是旧命令,也可能是:

docker-compose up -d

推荐优先使用 docker compose,也就是 Docker CLI 插件形式。

启用 Kubernetes

Colima 也可以启动本地 Kubernetes:

colima start --kubernetes

然后查看节点:

kubectl get nodes

如果只是日常 Docker 开发,不建议默认启用 Kubernetes。它会增加启动时间和资源占用。只有在需要本地调试 Kubernetes YAML、Helm chart 或 Operator 时再开启更合适。

多个 Profile

Colima 支持 profile,可以为不同场景维护不同环境:

colima start --profile dev --cpu 4 --memory 8
colima start --profile k8s --kubernetes --cpu 6 --memory 12

切换和停止指定 profile:

colima status --profile dev
colima stop --profile k8s

这种方式适合把普通 Docker 开发环境和 Kubernetes 环境分开,避免一个环境越来越重。

和 Docker Desktop 的区别

Docker Desktop 更像完整产品,带图形界面、扩展、内置设置页面、登录和商业功能。Colima 更像开发者工具,核心是把容器运行环境可靠地跑起来。

大致可以这样选择:

  • 想要图形界面、团队统一配置、Docker 官方集成:Docker Desktop 更省心。
  • 想要轻量、命令行、资源可控、少一些后台组件:Colima 更合适。
  • 公司对 Docker Desktop 许可有要求:可以评估 Colima、Rancher Desktop、Podman Desktop 等替代方案。

Colima 不是 Docker Desktop 的完整复刻。它更适合熟悉命令行和 Docker 基础概念的开发者。

常见问题

Docker 命令连接失败

先确认 Colima 是否启动:

colima status

如果没有启动:

colima start

也可以检查 Docker context:

docker context ls

通常 Colima 会创建并使用自己的 Docker context。如果 context 不正确,可以切换:

docker context use colima

磁盘空间不够

构建镜像多了之后,先清理 Docker 资源:

docker system prune

如果确实需要更大的虚拟机磁盘,可以停止后重新调整配置。调整前要确认重要数据已经备份,例如数据库容器的数据卷。

文件挂载性能

macOS 和 Linux 虚拟机之间的文件共享天然会有额外开销。大型项目里,如果依赖目录很多,例如 node_modules,建议尽量放在容器或虚拟机内部,减少频繁跨系统文件同步。

小结

Colima 的定位很明确:在 macOS 上用更轻量的方式管理 Docker 和容器运行时。它不追求完整桌面产品体验,而是把启动、停止、资源配置和容器运行这些核心能力做好。

如果你的本地开发主要依赖 dockerdocker compose,Colima 是一个值得优先尝试的方案。