Convert Figma logo to code with AI

abiosoft logocolima

Container runtimes on macOS (and Linux) with minimal setup

18,559
375
18,559
298

Top Related Projects

14,984

Linux virtual machines, with a focus on running containers

:warning: This repository is deprecated and will be archived (Docker CE itself is NOT deprecated) see the https://github.com/docker/docker-ce/blob/master/README.md :warning:

23,475

Podman: A tool for managing OCI containers and pods.

68,613

The Moby Project - a collaborative project for the container ecosystem to assemble container-based systems

Quick Overview

Colima is a container runtime for macOS and Linux with minimal setup. It provides Docker and Kubernetes support, offering a lightweight alternative to Docker Desktop. Colima aims to simplify the process of running containers on local development machines.

Pros

  • Easy setup and minimal configuration required
  • Supports both Docker and Kubernetes
  • Lightweight and resource-efficient compared to Docker Desktop
  • Works on both macOS and Linux

Cons

  • Limited Windows support (only through WSL2)
  • Fewer features compared to Docker Desktop
  • May require additional tools for certain advanced use cases
  • Community support might be less extensive than more established alternatives

Getting Started

To get started with Colima, follow these steps:

  1. Install Colima using Homebrew (macOS):

    brew install colima
    
  2. Start Colima:

    colima start
    
  3. Verify the installation:

    docker ps
    
  4. To use Kubernetes, start Colima with the --kubernetes flag:

    colima start --kubernetes
    
  5. To stop Colima:

    colima stop
    

For more advanced configuration options and usage, refer to the official documentation on the GitHub repository.

Competitor Comparisons

14,984

Linux virtual machines, with a focus on running containers

Pros of Lima

  • More flexible and customizable VM configuration options
  • Supports multiple VM instances and architectures
  • Active development with frequent updates and improvements

Cons of Lima

  • Steeper learning curve for beginners
  • Requires more manual configuration compared to Colima
  • May consume more system resources due to its flexibility

Code Comparison

Lima configuration example:

# lima.yaml
images:
- location: "https://cloud-images.ubuntu.com/focal/current/focal-server-cloudimg-amd64.img"
  arch: "x86_64"
cpus: 4
memory: "8GiB"
disk: "100GiB"

Colima configuration example:

# Command-line options
colima start --cpu 4 --memory 8 --disk 100

Lima offers more granular control through YAML configuration, while Colima provides a simpler command-line interface for basic setups. Lima's approach allows for more advanced customization, but Colima's simplicity makes it easier for users to get started quickly with Docker and Kubernetes environments on macOS.

:warning: This repository is deprecated and will be archived (Docker CE itself is NOT deprecated) see the https://github.com/docker/docker-ce/blob/master/README.md :warning:

Pros of docker-ce

  • More comprehensive Docker ecosystem with broader platform support
  • Extensive documentation and community resources
  • Wider range of features and tools for container management

Cons of docker-ce

  • Heavier resource usage, especially on macOS
  • More complex setup and configuration process
  • Requires additional software for macOS (Docker Desktop)

Code Comparison

docker-ce:

version: '3'
services:
  web:
    image: nginx:latest
    ports:
      - "80:80"

Colima:

colima start --cpu 2 --memory 4
docker run -d -p 80:80 nginx:latest

Key Differences

Colima is a lightweight Docker environment specifically designed for macOS, offering easier setup and lower resource consumption. It uses Lima and QEMU to create a minimal VM for running containers.

docker-ce provides a full Docker experience across multiple platforms but requires more resources and setup time, especially on macOS where it needs Docker Desktop.

Colima focuses on simplicity and efficiency for macOS users, while docker-ce offers a more feature-rich and versatile container platform suitable for various environments and complex deployments.

23,475

Podman: A tool for managing OCI containers and pods.

Pros of Podman

  • Native Linux support with rootless containers
  • OCI-compliant, allowing for seamless integration with Kubernetes
  • More mature project with broader community support

Cons of Podman

  • Limited native support for macOS and Windows
  • Steeper learning curve for users familiar with Docker

Code Comparison

Colima (starting a container):

colima start
docker run -d --name nginx -p 8080:80 nginx

Podman (starting a container):

podman machine init
podman machine start
podman run -d --name nginx -p 8080:80 nginx

Summary

Colima is a lightweight Docker environment for macOS, while Podman is a daemonless container engine compatible with Docker. Podman excels in Linux environments and offers more advanced features, but Colima provides an easier setup for macOS users. Both tools aim to simplify container management, with Podman focusing on security and standards compliance, and Colima emphasizing ease of use for macOS developers.

68,613

The Moby Project - a collaborative project for the container ecosystem to assemble container-based systems

Pros of Moby

  • Larger, more established project with extensive community support and contributions
  • Broader feature set and compatibility across various platforms and use cases
  • More comprehensive documentation and resources for developers

Cons of Moby

  • More complex architecture and potentially steeper learning curve
  • Heavier resource footprint due to its extensive feature set
  • May be overkill for simpler containerization needs

Code Comparison

Colima (configuration example):

cpu: 2
memory: 4
disk: 60

Moby (Dockerfile example):

FROM ubuntu:20.04
RUN apt-get update && apt-get install -y nginx
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

Summary

Colima is a lightweight, macOS-focused Docker environment, ideal for local development with minimal setup. Moby, on the other hand, is a comprehensive containerization platform suitable for various environments and production use cases. While Colima offers simplicity and ease of use for macOS users, Moby provides a more robust and flexible solution for complex containerization needs across different platforms.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

colima-logo

Colima - container runtimes on macOS (and Linux) with minimal setup.

Go Integration Go Report Card

Demonstration

Features

Support for Intel and Apple Silicion Macs, and Linux

  • Simple CLI interface with sensible defaults
  • Automatic Port Forwarding
  • Volume mounts
  • Multiple instances
  • Support for multiple container runtimes

Getting Started

Installation

Colima is available on Homebrew, MacPorts, and Nix. Check here for other installation options.

# Homebrew
brew install colima

# MacPorts
sudo port install colima

# Nix
nix-env -iA nixpkgs.colima

Or stay on the bleeding edge (only Homebrew)

brew install --HEAD colima

Upgrading

If upgrading from v0.5.6 or lower, it is required to start afresh by deleting existing instance.

colima delete # delete existing instance
colima start

Usage

Start Colima with defaults

colima start

For more usage options

colima --help
colima start --help

Or use a config file

colima start --edit

Runtimes

On initial startup, Colima initiates with a user specified runtime that defaults to Docker.

Docker

Docker client is required for Docker runtime. Installable with brew brew install docker.

You can use the docker client on macOS after colima start with no additional setup.

Containerd

colima start --runtime containerd starts and setup Containerd. You can use colima nerdctl to interact with Containerd using nerdctl.

It is recommended to run colima nerdctl install to install nerdctl alias script in $PATH.

Kubernetes

kubectl is required for Kubernetes. Installable with brew install kubectl.

To enable Kubernetes, start Colima with --kubernetes flag.

colima start --kubernetes

Interacting with Image Registry

For Docker runtime, images built or pulled with Docker are accessible to Kubernetes.

For Containerd runtime, images built or pulled in the k8s.io namespace are accessible to Kubernetes.

Incus

Requires v0.7.0

Incus client is required for Incus runtime. Installable with brew brew install incus.

colima start --runtime incus starts and setup Incus.

You can use the incus client on macOS after colima start with no additional setup.

None

Requires v0.7.0

Colima can also be utilised solely as a headless virtual machine manager by specifying none runtime.

Customizing the VM

The default VM created by Colima has 2 CPUs, 2GiB memory and 60GiB storage.

The VM can be customized either by passing additional flags to colima start. e.g. --cpu, --memory, --disk, --runtime. Or by editing the config file with colima start --edit.

NOTE: disk size cannot be changed after the VM is created. From v0.5.3, disk size can be increased.

Customization Examples

  • create VM with 1CPU, 2GiB memory and 10GiB storage.

    colima start --cpu 1 --memory 2 --disk 10
    
  • modify an existing VM to 4CPUs and 8GiB memory.

    colima stop
    colima start --cpu 4 --memory 8
    
  • create VM with Rosetta 2 emulation. Requires v0.5.3 and MacOS >= 13 (Ventura) on Apple Silicon.

    colima start --vm-type=vz --vz-rosetta
    

Project Goal

To provide container runtimes on macOS with minimal setup.

What is with the name?

Colima means Containers on Lima.

Since Lima is aka Linux Machines. By transitivity, Colima can also mean Containers on Linux Machines.

And the Logo?

The logo was contributed by Daniel Hodvogner. Check this issue for more.

Troubleshooting and FAQs

Check here for Frequently Asked Questions.

Community

Help Wanted

  • Documentation (wiki pages)

License

MIT

Sponsoring the Project

If you (or your company) are benefiting from the project and would like to support the contributors, kindly support the project.

Buy Me A Coffee