Things I Learned Running Docker on Unraid
I’ve been running Unraid as my home server OS for a few years now. It’s great for what it does — simple array management, a decent UI, and first-class Docker support. But there are some things I wish I’d known earlier.
1. Don’t Put Application Data on the Array
The array is parity-protected and great for bulk storage, but it’s slow for random I/O. Docker containers that need fast disk access — databases, Gitea, anything with lots of small writes — should use an SSD cache pool or an unassigned device.
I learned this the hard way when my Gitea instance was taking 30 seconds to load a page. Moved the appdata to an NVMe and it was instant.
2. Use Custom Docker Networks
By default, Unraid puts everything on bridge mode. This works but means containers talk to each other via the host IP. Create a custom Docker network and containers can resolve each other by name:
docker network create apps
Then set your containers to use the apps network. Now gitea can reach postgres by hostname instead of 192.168.1.100:5432.
3. Pin Your Container Versions
Using latest tags is convenient until an update breaks something at 2 AM. Pin to specific versions, test updates manually, and keep notes on what version you’re running.
4. Backup Your Appdata
Unraid’s array has parity protection, but your Docker appdata on the cache drive probably doesn’t. Set up a scheduled backup of /mnt/user/appdata/ to the array or an offsite location. I use a simple rsync cron job.
5. Monitor Resource Usage
Twenty containers sounds fine until you realize half of them are idle and three of them are eating all your RAM. Unraid’s built-in monitoring is basic.

Add something like Grafana + Prometheus or even just ctop to keep an eye on things.