Introduction
Lima launches Linux virtual machines with automatic file sharing, port forwarding, and containerd integration. It was created to make running Linux containers on macOS as frictionless as possible, without requiring Docker Desktop or heavy VM management.
What Lima Does
- Provisions Linux VMs using QEMU or Apple Virtualization.framework on macOS
- Shares host directories into the guest via reverse-sshfs or virtiofs
- Forwards guest ports to the host automatically
- Integrates with containerd and nerdctl for rootless container workflows
- Supports multiple VM instances with independent configurations
Architecture Overview
Lima uses QEMU (or vz on Apple Silicon) to run a full Linux kernel inside a lightweight VM. A background agent manages SSH tunnels for file sharing and port forwarding between the host and guest. Configuration is driven by YAML templates that define CPU, memory, disk, mounts, and provisioning scripts. The guest runs a standard Linux userspace where containerd operates natively.
Self-Hosting & Configuration
- Install via Homebrew on macOS or from binary releases on Linux
- Create VMs with
limactl startusing built-in or custom YAML templates - Adjust CPU, memory, and disk in the template before first boot
- Mount host directories read-write by setting
writable: truein the YAML - Use
limaprefix to run commands inside the default VM instance
Key Features
- Near-native performance on Apple Silicon via Virtualization.framework
- Rootless container support through containerd and nerdctl
- Multiple VM templates for Ubuntu, Fedora, Arch, Alpine, and more
- Automatic SSH key management with no manual configuration
- Works alongside Docker Desktop or as a standalone replacement
Comparison with Similar Tools
- Colima — wraps Lima with Docker-compatible CLI defaults; Lima offers lower-level VM control
- Docker Desktop — proprietary GUI with built-in Docker Engine; Lima is open source and CLI-driven
- Multipass — Canonical's Ubuntu-focused VM manager; Lima supports more distros and container runtimes
- Podman Machine — Podman-specific VM layer; Lima is runtime-agnostic
- UTM — GUI-oriented macOS VM app; Lima is headless and scriptable
FAQ
Q: Does Lima require Docker Desktop? A: No. Lima uses containerd and nerdctl by default, providing a fully independent container workflow without Docker.
Q: Can I run Lima on Intel Macs? A: Yes. Lima supports both Intel and Apple Silicon Macs via QEMU, and Apple Silicon additionally through Virtualization.framework.
Q: How do I access services running inside the VM? A: Lima automatically forwards ports from the guest to the host, so services are reachable on localhost without extra configuration.
Q: Can I use Lima in CI pipelines? A: Yes. Lima is fully CLI-driven and scriptable, making it suitable for headless CI environments on macOS or Linux runners.