If you self-host apps, you’ve probably used Docker. It’s clean, efficient, and flexible, allowing you to run multiple different services separately on the same machine. You can run Home Assistant in Docker, but if you do, you may be missing out.
Docker vs. Virtual Machines What’s Best for Your Homelab?
Sometimes you need a bulldozer, and sometimes a shovel.
What you lose by running Home Assistant in Docker
There’s an app for that
There’s a key distinction to get out of the way first here. Running Home Assistant can mean different things. It can mean running the core application, but in more general terms, it can mean using Home Assistant and its associated integrations, apps, and custom components to control and automate your smart home.
You can run the core Home Assistant software in Docker without any issues whatsoever. However, if you do so, you lose access to some of the useful tools that make Home Assistant so powerful.
The biggest thing you’ll be missing is easy access to apps (formerly known as add-ons). Apps are useful pieces of software that run alongside Home Assistant rather than within it. You can use these apps to add additional features to Home Assistant.
Popular apps include Zigbee2MQTT, which lets Home Assistant control your Zigbee smart home devices, Node-RED, which lets you create automations using a visual flow-based system, and ESPHome, which lets you manage DIY hardware built with ESP32 microcontrollers.
These apps are essentially Docker containers of their own that are managed by the Home Assistant Supervisor. This means you can add them and configure them directly from Home Assistant without having to touch a Docker Compose file, map volumes, or expose ports.
How to run HAOS without using your whole machine
HAOS runs well in a VM
The alternative to running Home Assistant in Docker is to use Home Assistant Operating System (HAOS). With HAOS, the background Supervisor service takes care of managing your apps for you. This means that you can install them directly from within Home Assistant and they’ll start working as soon as they’re installed.
For most users, this is a far simpler option. HAOS is simple to use, there’s a built-in app store, and you can update your apps from the UI with a single click. Most of the Home Assistant documentation is written with an HAOS installation in mind too, so it’s far easier to follow steps you find in the official guides.
Docker is great for separating different software running on a single machine, but if you want to run HAOS and host other services on the same hardware, you still can. HAOS runs perfectly well in a virtual machine; I run HAOS in a VM in Proxmox on my mini PC, along with multiple other services.
- CPU
-
Celeron FCBGA1264 3.6GHz
- Graphics
-
Integrated Intel Graphics 24EUs 1000MHz
The Beelink Mini S13 Pro desktop PC is a ultra-compact computer powered by the Intel N150 processor. Shipping with 16GB of DDR4 RAM and a 500GB SSD, this micro desktop is perfect for a variety of workloads. From running simple server programs to replacing your old PC, the Beelink S13 Pro is up to the task.
What Docker offers that HAOS can’t
There are some benefits
That’s not to say that running Home Assistant in Docker is a bad choice for everybody. If you’re already comfortable with Docker and all its ins and outs, there are some reasons why you might prefer to run Home Assistant in Docker.
Running apps in their own Docker containers does offer some benefits. Since your apps are running in their own containers, if Home Assistant goes down or you need to restart it, your apps will keep running. If you use Node-RED for automations outside of Home Assistant, for example, you don’t want it to go down every time Home Assistant does.
Docker also makes everything more portable. Since your entire setup is defined by a single Docker Compose file, if your server dies, all you need is that one file and your configuration folder, and you can bring everything back online exactly how it was.
For most users, however, the ease of use of running HAOS outweighs the benefits of using Docker. Unless you’re already running other services in Docker, you’ll probably have a less stressful time running HAOS.
Migrating from Docker is possible
You don’t need to start from scratch
If you’re already running Home Assistant in Docker and you’re regretting your decision, there’s nothing to stop you from switching to HAOS instead. You won’t have to start again completely from scratch.
HAOS lets you restore from a backup, so you can take a backup of your current Home Assistant instance in Docker. You can then set up HAOS and restore from your backup. This will restore your configuration, integrations, dashboards, and more.
Once HAOS is up and running, you can install the Home Assistant apps that you were previously running in their own containers. You may have to make a few additional tweaks here and there, but it should be much faster than starting over from scratch.
HAOS is the easier option
Docker is popular for a reason, but it’s not always the perfect solution. If you want the best experience using Home Assistant for the least amount of effort, HAOS is the way to go.



