- Software
- A
OrbStack: Why I Forgot About Docker Desktop
Working on a MacBook with Docker Desktop, I often encountered the system becoming less responsive, especially when running multiple containers simultaneously. High CPU and memory usage significantly affected battery life.
But recently I came across OrbStack, and it changed my workflow so much that I decided to share my experience. Spoiler: now my MacBook doesn't turn into a heater, the battery lasts longer, and Docker containers fly.
What is OrbStack?
OrbStack is not just another alternative to Docker Desktop. It is an all-in-one solution for running containers, Kubernetes clusters, and Linux virtual machines on macOS. When I first heard about it, I was skeptical. We've all seen many "alternatives" to Docker Desktop that ended up creating more problems than they solved.
But OrbStack turned out to be different. Its main difference is that it was originally created with the specifics of macOS and container work on Mac in mind. And it shows in everything.
Why did I switch to OrbStack?
Performance
The first thing I noticed after switching was the difference in speed:
OrbStack starts in 2 seconds, while Docker Desktop usually takes 20-30 seconds
Image building is about 40-50% faster
File operations have noticeably sped up, which is especially noticeable in large projects
Efficient resource usage
Significant improvements are also noticeable in the use of system resources:
RAM is used 3-4 times more efficiently
CPU load in idle mode is minimal
Power consumption is significantly 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 the work, I appreciated several functions that significantly simplify development:
Automatic domain name management: each container is available as
container-name.orb.local
, Kubernetes services asservice.namespace.svc.cluster.local
, Linux machines asmachine-name.orb.local
Direct access to container files through 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. However, this feature is only available in the paid version, the rest is in OpenSource, for personal and non-commercial use. I refused after the trial, the free version is more than enough.
Technical implementation
The architecture of the application is quite interesting, it is immediately clear that they tried, and did not just stretch the UI. Key points:
Using Rosetta instead of QEMU to emulate x86 on Apple Silicon, which provides better performance
Components written specifically for macOS in Swift, Go, Rust, and C, which allows efficient use of system APIs
Optimized file system based on VirtioFS with thoughtful caching
Own implementation of the network stack with proper support for VPN and SSH
Easy migration
When it came to migration, I expected the usual headache with transferring projects. But it turned out to be surprisingly simple:
# Installation
brew install orbstack
# Data migration
orb migrate docker
# Context switching
docker context use orbstack
And that's it. Really. All my containers, images, and volumes were transferred automatically. Moreover, I can easily switch between OrbStack and Docker Desktop if needed - just change the context.
What about development tools?
This was my main fear - compatibility with existing tools. But it turned out that everything works like clockwork:
In my favorite JetBrains IDEs, I didn't even notice any changes
In VS Code, it also works without problems
docker-compose, kubectl, helm - everything continues to work as before
Full-fledged work with Linux
I especially want 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 to:
Test an 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 by simple drag and drop.
If you need to run graphical Linux applications, additional setup with XQuartz or Xrdp will be required. This is a minor limitation, but for most development tasks, it is not critical.
Conclusions
After several months of working with OrbStack, I can say that it is a worthy alternative to Docker Desktop. The main advantages that I noticed in everyday work:
Faster startup and operation of containers
Efficient use of system resources
Convenient work with files and network
Ability to run full-fledged Linux machines
Easy migration of existing projects
It is important to note that like any tool, OrbStack may not be suitable for all use cases. I recommend trying it yourself - thanks to easy migration, it won't take much time. You can switch back later
P.S. If you are on Colima, it is also faster, you can switch just as easily - install and switch context.
Write comment