For years I’ve run a personal home server. Well scratch that, maybe I should call it a lab. I’ve been a long-term user of VSphere at home, and over the years I’ve slowly but surely expanded our environment to be more akin to a small business setup. It’s a hobby, and I enjoy it. Why not?
Recently while visiting r/homelab, I ran across a post about a guy who set up a linux host running docker all of his home media applications. Docker? What the heck is docker? Why do I need that when I can just spin-up VMs. Or how about a better question… Why do I need that when I can just install all of these apps in a single VM?
In short – here are the advantages:
- Less resource intensive than separate VMs. (Duh!)
- Complete environment isolation, meaning no more mono-libs or java libs cluttering up your host server.
- Speaking of Libs – having the RIGHT environment for the app you are running. What I need an OLD version of PHP to run this? No big deal!
- Separation of configuration data from application data.
- EASY upgrades
docker pull / docker run / docker rm
. Or my personal favorite… just script it! - Quick and easy deployment of new tools/toys to play with without causing harm to the rest of your system.
There are MANY other reasons to use docker, especially when it comes to development (both linux and web development). I won’t get into that here. Mostly logging this setup for myself. I’ll share after the break how I set up a brand new Ubuntu 16.04 VM with docker, and migrated my entire home media server to it in one night.
Before continuing – I always give credit where it’s due. Much of my inspiration came from this post [zackreed.me]. Check it out for more (likely better written) posts similar to this one!