• Stars
    star
    16,222
  • Rank 1,635 (Top 0.04 %)
  • Language
    Go
  • License
    MIT License
  • Created over 2 years ago
  • Updated about 1 month ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Container runtimes on macOS (and Linux) with minimal setup

colima-logo

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

Go Integration

Demonstration

Features

  • Intel and M1 Macs support
  • Simple CLI interface
  • Docker and Containerd support
  • Port Forwarding
  • Volume mounts
  • Kubernetes
  • Multiple instances

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.4.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.

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)

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

Project Goal

To provide container runtimes on macOS with minimal setup.

What is with the name?

Colima means Containers in Lima.

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

Troubleshooting and FAQs

Check here for Frequently Asked Questions.

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

More Repositories

1

ishell

Library for creating interactive cli applications.
Go
1,536
star
2

caddy-docker

Docker container for Caddy
Shell
765
star
3

caddy-git

git middleware for Caddy
Go
207
star
4

dockward

Port forwarding tool for Docker containers
Go
136
star
5

caddy-json-schema

JSON schema generator for Caddy v2
Go
122
star
6

caddy-exec

Caddy v2 module for running one-off commands
Go
91
star
7

DevReload

Auto reload for ASP.NET core development
C#
62
star
8

autoplank

automatically move Plank to the active monitor
Go
50
star
9

runcmd

Wrapper for cli apps. Write less commands.
Go
43
star
10

semaphore

Wrapping sync.Mutex for familiar semaphore api
Go
43
star
11

caddyplug

Experimental Caddy plugin manager using Go plugins
Go
40
star
12

river

River is a simple and lightweight REST server
Go
37
star
13

gocalc

Simple Go Calculator
Go
34
star
14

dotfiles

dotfiles. zsh, neovim, tmux, i3 e.t.c.
Vim Script
34
star
15

caddy-yaml

Alternative Caddy YAML config adapter with extra features
Go
26
star
16

crostini-docker

Docker for Crostini with fixed binariest that work
Shell
25
star
17

caddy-json-parse

Caddy v2 module for parsing json request
Go
16
star
18

parent

A minimal process wrapper
Go
15
star
19

caddy-named-routes

named routes support for Caddy v2
Go
12
star
20

lineprefix

io.Writer wrapper with line prefix and color customizations.
Go
11
star
21

launchar

minimal GTK application launcher
Vala
11
star
22

hello-elementary

quick start elementary OS application
Vala
10
star
23

caddy-hmac

Caddy v2 hmac signature validation middleware
Go
7
star
24

cmdplay

Prototype shell session recorder and player
Go
5
star
25

bgrun

Run processes in background
Python
5
star
26

hello-caddy

Sample external middleware for Caddy
Go
4
star
27

caddyserver.com

Source of the Caddy website
HTML
4
star
28

forloopui2017

Code used for forloop UI 2017 talk
Go
3
star
29

webtest

Basically web repo to test servers
HTML
3
star
30

atom-go-imports

Auto import Go packages via the goimports tool
CoffeeScript
3
star
31

errs

convenience wrapper for chaining multiple error returning functions.
Go
3
star
32

injekt

Pluggable service injector
Go
3
star
33

colima-core

Dependencies for Colima
Shell
3
star
34

hcl2json

HCL to JSON converter
Go
3
star
35

servefile

File Server for any directory or file
Go
2
star
36

buildsrv

The Caddy build server
Go
2
star
37

gistdl

Download github gists as files
Python
2
star
38

ghrelease

A tool to download latest release archive for a GitHub project using GitHub API.
Go
2
star
39

node-graceful

Gracefully shutdown your node app. Graceful interrupts SIGTERM and SIGINT signals.
JavaScript
2
star
40

codementorhannah

Mentorship codes
Go
1
star
41

lexicon

CSC 332 Assignment
JavaScript
1
star
42

gopages-sample

Sample blog using gopages and mgo
1
star
43

structures

CSC 341 assignment
Go
1
star
44

stack

Simple Stack
Go
1
star
45

goutils

A set of utilities for Go
Go
1
star