Why did I forget about Docker Desktop
While running Docker Desktop on a MacBook, I often found the system to become less responsive, especially when running multiple containers at the same time. High load on the CPU and memory significantly affected battery life.
But I recently came across OrbStack and it has changed my workflow so much that I decided to share my experience. Spoiler: now my MacBook doesn’t turn into a stove, the battery lasts longer, and Docker containers fly.
What is OrbStack?
OrbStack is not just another Docker Desktop alternative. This is a complete all-in-one solution for running containers, Kubernetes clusters and Linux virtual machines on macOS. When I first heard about this, I was skeptical. We've all seen plenty of Docker Desktop “alternatives” that end up creating more problems than they solve.
But OrbStack turned out to be different. Its main difference is that it was originally created taking into account the features of macOS and the specifics of working with containers on Mac. And this is felt literally in everything.
Why did I switch to OrbStack?
Performance
The first thing I noticed after the transition was the difference in speed:
OrbStack starts in 2 seconds, while Docker Desktop usually takes 20-30 seconds
Building images is about 40-50% faster
Work with files has noticeably accelerated, which is especially noticeable in large projects
Efficient use of resources
Significant improvements are also noticeable in the use of system resources:
RAM is used 3-4 times more efficiently
CPU load in standby mode is minimal
Power consumption is noticeably lower – tests show 180 mW versus 726 mW for Docker Desktop when running the same containers (these figures can be obtained when running Sentry, commit
15fa261f
)
Useful features for development
During my work, I appreciated several functions that significantly simplified development:
Automatic domain name management: each container is available as
container-name.orb.local
Kubernetes services likeservice.namespace.svc.cluster.local
Linux machines likemachine-name.orb.local
Direct access to container files via Finder – you can work with container files as with a regular folder
Excellent debugging capabilities, which are especially useful when working with minimal and distroless containers. True, this function is only available in the paid version, while the rest of the functionality is available in the OpenSource version for personal and non-commercial use. I abandoned the paid version after the trial period – the free version is quite enough for my purposes.
Technical implementation
The architecture of the application is quite interesting, it’s immediately obvious that they put effort into the UI and didn’t stretch it. From the key:
Using Rosetta instead of QEMU for x86 emulation on Apple Silicon for better performance
Components written specifically for macOS in Swift, Go, Rust and C, allowing efficient use of system APIs
Optimized file system based on VirtioFS with thoughtful caching
Own implementation of the network stack with correct support for VPN and SSH
Simple Migration
When it came to migration, I expected the usual headaches of migrating projects. But everything turned out to be surprisingly simple:
# Установка
brew install orbstack
# Миграция данных
orb migrate docker
# Переключение контекста
docker context use orbstack
That's all. Is it true. All my containers, images and volumes were transferred automatically. Moreover, I can easily switch between OrbStack and Docker Desktop, if necessary, just change the context.
What about development tools?
This was my main fear – compatibility with existing tools. But it turned out that everything worked like clockwork:
I didn’t even notice any changes in my favorite JetBrains IDE
It also works in VS Code without any problems.
docker-compose, kubectl, helm – everything continues to work as before
Complete work with Linux
I would also like to note the ability to work with Linux machines. Unlike Docker Desktop, OrbStack allows you to run full-fledged virtual machines with various Linux distributions. This is especially convenient when you need:
Test the application in a specific distribution
Run services that are difficult to containerize
Use specific versions of Linux for development
OrbStack supports 15 different distributions, and working with them is really convenient – each machine is accessible by name (machine-name.orb.local
), and files can be transferred simply by dragging and dropping.
If you need to run graphical Linux applications, additional configuration using XQuartz or Xrdp will be required. This is a small limitation, but for most development tasks it is not critical.
Results
After several months of working with OrbStack, I can say that it is a worthy alternative to Docker Desktop. The main benefits that I noticed in my daily work:
Faster startup and operation of containers
Efficient use of system resources
Convenient work with files and the network
Ability to run full-fledged Linux machines
Easy migration of existing projects
It's important to note that, like any tool, OrbStack may not be suitable for all use cases. I recommend trying it yourself – thanks to the simple migration, it won't take much time. Then you can return it
PS If you are on Colima, then it is also faster, you can switch just as easily – install and switch the context.