Colima: Container runtimes on macOS and Linux
Lima-based container runtime provisioning for macOS and Linux.
Learn more about colima
Colima is a container runtime provisioning tool for macOS and Linux that provides Docker and Kubernetes environments through lightweight virtual machine abstraction. It builds on Lima (Linux virtual machines on macOS) to create configurable VM instances with customizable CPU, memory, and disk allocations, supporting multiple virtualization backends including VZ and QEMU with various mount type options like virtiofs for filesystem sharing. The tool implements a profile-based architecture that allows users to maintain multiple isolated container runtime environments with different configurations, enabling seamless switching between development contexts such as standard Docker setups and Kubernetes clusters with specific version requirements. Colima integrates directly with existing container tooling by exposing standard Docker socket interfaces and kubectl configurations, making it compatible with the broader container ecosystem without requiring changes to existing workflows.
Multiple runtime support
Colima can provision Docker, Containerd, Incus, or run as a headless VM manager. Users can switch between runtimes or run multiple instances with different configurations.
Lima-based virtualization
Built on Lima, Colima leverages native hypervisors (HyperKit on Intel, Virtualization Framework on Apple Silicon) rather than requiring Docker Desktop or other container-specific virtualization layers.
Configuration-driven customization
VM resources like CPU, memory, and disk can be adjusted via CLI flags or configuration files, with disk size adjustable after initial creation. Rosetta 2 emulation is available on Apple Silicon for running x86 containers.
import subprocess
import json
# Check status of default Colima instance
result = subprocess.run(
['colima', 'status', '--json'],
capture_output=True,
text=True
)
status = json.loads(result.stdout)
print(f"Runtime: {status['runtime']}, State: {status['state']}")Hotfix release correcting a critical bug where root disk size could be set to zero for some users.
- –Upgrade immediately if experiencing disk errors; fixes root disk size incorrectly defaulting to zero.
- –Configure k3s listen port via new customization option if running Kubernetes workloads.
Adds bridged networking and persistent container data disk (new instances only); removes /tmp/colima default mount, breaking multi-user setups.
- –Use `--network-mode bridged` for bridged networking (shared remains default) and pass `--data` to `colima delete` to remove persistent disk.
- –Update runtimes manually with `colima update` (Docker 28.4.0, nerdctl 2.1.4, Incus 6.16, K3s 1.33.4+k3s1) and note template loading is re-enabled by default.
Fixes cross-architecture container exec format errors and changes config template loading to require explicit --template flag.
- –Pass --template flag explicitly to load config from template; implicit loading when template is present is now disabled.
- –Set --binfmt=false to disable cross-architecture container execution if needed; binfmt restart issue is resolved.
Top in Developer Tools
Related Repositories
Discover similar tools and frameworks used by developers
pino
Low-overhead streaming JSON logger for Node.js.
doomemacs
Modular framework with lazy loading and vim keybindings.
crush
LLM-powered coding agent with LSP and MCP integration.
json-server
Zero-config REST API server from JSON files.
ddt4all
Open-source Python application for vehicle diagnostics, ECU parameter modification, and CAN bus communication with Renault and Dacia cars.