Colima (Containers on Linux on Mac) 🐳

Devang TomarDevang Tomar
3 min read

What is Colima? πŸ€”

Colima is built on Lima, which generates a QEMU VM with an HVF accelerator and handles port forwarding and folder sharing. Lima has containerd and nerdctl, but a Docker container runtime is necessary for a drop-in replacement, which is what Colima is for.

Colima installs the Docker container runtime in a Lima virtual machine, configures the Docker CLI on macOS, and handles port forwarding and volume mounts. Docker, like Docker Desktop, is now simply accessible on macOS without any settings.

It’s a command line program that builds on top of lima to give a more convenient and full Docker Desktop alternative, and it already shows a lot of potential. Getting started with Colima is very simple as long as you already have brew and Xcode command line tools installed.

https://github.com/abiosoft/colima

Intro GIF πŸ“Œ

Colima GIDF

Installation and Setup βš™οΈ

Installation is easy and can be done through Homebrew:

brew install colima

Installing Colima

To start the VM we run:

colima start

Colima start

Docker run

It will start the docker daemon in the VM and configure the docker CLI on the host. The usage in macOS is no different from Docker Desktop, and all docker commands should work as before.

Features πŸ’―

  • Intel and M1 Macs support

  • Simple CLI interface

  • Docker and Containerd support

  • Port Forwarding

  • Volume mounts

  • Kubernetes

Changing VM size πŸ›

The default VM may be on a tiny side, especially if you opt to run Kubernetes as well.

To give your VM greater resources, use

colima stop

followed by

colima start β€” cpu 6 β€” memory 6.

This will provide your Colima VM 6 CPU cores and 6GB of RAM. You can get a full list of options by simply running colima and pressing enter.

More about that here : https://github.com/abiosoft/colima#customizing-the-vm

Kubernetes ☸️

kubectl is required for Kubernetes. Installable with

brew install kubectl

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

colima start --with-kubernetes

More Usage options πŸ“œ

colima --help

Colima help menu

Conclusion πŸ’πŸ»β€β™‚οΈ

When I ran docker containers, I didn’t detect any difference, and all docker commands functioned as before, which is excellent because none of my build scripts had to be altered.

This is a fairly young initiative with a lot of potential. A lot is happening, and the option to construct alternative Colima VMs that operate on different architectures is now in the code base. You may, for example, run arm64 Docker images on your amd64-based Mac or vice versa.

Colima is a young but promising project that can easily replace Docker Desktop, and if you are a Docker user, I highly recommend giving it a try and offering input if you so choose. It is capable of running Docker containers, docker-compose-based programs, Kubernetes, and building images.

Please share your opinions about Podman and this topic in the comments section.

Connect with Me on Social Media

🐦 Follow me on Twitter: devangtomar7
πŸ”— Connect with me on LinkedIn: devangtomar
πŸ“· Check out my Instagram: be_ayushmann
Ⓜ️ Checkout my blogs on Medium: Devang Tomar
#️⃣ Checkout my blogs on Hashnode: devangtomar
πŸ§‘β€πŸ’» Checkout my blogs on Dev.to: devangtomar

0
Subscribe to my newsletter

Read articles from Devang Tomar directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Devang Tomar
Devang Tomar

πŸ‘¨β€πŸ’» Creative Software Engineer with 5 years of experience in domains including CI/CD, Networking, Cloud computing, Development, Virtualization, and Linux administration. Passionate about developing forward-thinking solutions to tomorrow's productivity problems. Resourceful and adaptable approach to challenges. πŸ€Ήβ€β™€οΈ Skill stack: β€’ Cloud ☁️ : Azure, GCP β€’ Databases πŸ—ƒοΈ : MySQL, PostgreSQL, Elasticsearch β€’ Language 🐍 : Python, JavaScript β€’ Configuration management, deployment & IaC πŸ›‘οΈ : Ansible, Terraform β€’ Container and orchestration 🐳 : Docker, Kubernetes β€’ Version Control πŸ—‚οΈ : Git, GitHub β€’ CI/CD πŸ”„ : Jenkins, GitHub actions, ArgoCD β€’ Continuous Monitoring πŸ“Š : Grafana, ELK, Prometheus πŸ“š Currently learning: Web development, MLOPS