Using Docker
In the past year or two I’ve begun using Docker more and more to run applications and services on my home network. If you’re not familiar with Docker, click here to read more. I have a virtual machine setup for the sole purpose of running a multitude of applications in Docker containers.
Some of the most notable are:
- Portainer – Manages Docker images/containers
- Ombi – Tracks requests for movies and TV shows
- Tautulli – Tracks statistics for my Plex server
- OnlyOffice – MS-Office compatible document editing
- HomeAssistant – Home automation
- NodeRed – Some home automation
- Bitwarden – Password manager
- Paperless-ng – Document management
- RocketChat – A private chat server
- MongoDB – A NoSQL database
- Mosquitto – MQTT broker
These services are configured to run on a variety of ports so I use HAProxy as a reverse proxy and add user-friendly names to my local DNS server. Since they’re all running on a single virtual machine, backups are a simple matter of making a copy of the VM image and storing it on my local backup server.
I also like the fact that each application running in a Docker container takes care of its own dependencies. This really makes installing an application as easy as pulling the image and starting it up. Updates are equally easy, just pull the new image(s) and restart the container. I still have a bunch of separate virtual machines but as time goes on, I may go ahead and try to move them into Docker when it makes sense to do so.
Another thing I really like about using Docker is that I can quickly and easily evaluate applications. Most times it takes less than 15 minutes to get something up and running. If I like it I keep it, otherwise I just purge the container and move on.
If you haven’t started using Docker, you really should take a look at this awesome technology and discover just how easy it is to add applications and services to your home network.