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.localKubernetes services like service.namespace.svc.cluster.localLinux machines like machine-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.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *