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 to address disk error issues for a subset of users.
- –vm: fix root disk size getting set to zero
- –k3s: customizable listen port
New release with several fixes and features including improved DNS resolution and configurable port forwarder.
- –Reinstated previous behavior with templates - Colima loads config from template file if present
- –Improved DNS resolution for host.docker.internal in Docker, Containerd and Kubernetes containers
- –Removed /tmp/colima as default mount due to multi-user issues on macOS
- –Port forwarder now configurable between ssh and grpc with --port-forwarder flag
- –Fix for 386 architecture emulation when Rosetta is enabled
Hotfix release addressing cross-architecture container execution regression and template loading changes.
- –Disable implicit loading of config from template - now requires --template flag
- –Cross-architecture container execution can be disabled by setting --binfmt=false flag
- –vm: fix binfmt not enabled after restart
Top in Developer Tools
Related Repositories
Discover similar tools and frameworks used by developers
pybind11
Header-only library creating minimal-boilerplate C++ Python bindings.
Build Your Own X
Curated guides for recreating popular technologies from scratch, from 3D renderers to operating systems.
Pino
Low-overhead streaming JSON logger for Node.js.
GoogleTest
xUnit-based C++ testing framework with integrated mocking.
Selenium
Browser automation framework implementing W3C WebDriver with multi-language support.