A few months ago I got into Docker and created my first container. Since then my knowledge of and use of containers has grown. They make installation and maintenance of key apps in my home so much easier. I still have plans to move more things to Docker, but here is my progress so far.
Plex and Emby, the first of the containers
Plex, the first of my containers, was built to support my foray into cordcutting. It was an easy and fruitful first container to build, and I still have it running today. Plex, like all of my containers, has been incredibly stable. This gave me the confidence to move on to other containers.
I quickly installed Emby in a Docker container because I wasn’t completely satisfied with Plex. Emby was just as easy to install and maintain as Plex was, and just as stable. I still run Emby as well. Since I retired MythTV (I miss it!), we pretty much use Emby exclusively instead of Plex.
Portainer: A better way to organize my containers
Even though I only had two containers, I could already see I was going to expand and I wanted a good management tool for my containers. I’m comfortable with the command line, but a simple GUI that allows me to manage my containers could save me a lot of time. That led me to install Portainer.
Portainer makes creating, monitoring, and upgrading containers easy. One of the cool things about Portainer is that it’s actually a Docker container that manages containers. I went into more detail about it in the review I wrote so I won’t repeat all of that here. But let me say again, the “Recreate” button is great!
Mosquitto, an MQTT Broker in a container
When I wanted to start getting into MQTT I knew a container would be the right way to set up a broker. At first, I was just trying out MQTT. Now it has come to be a foundation of many of my smarthome implementations like:
- Sonoff RF Bridge functionality (e.g. remote irrigation control, panic buttons, and more)
- Shelly smart light switches
- Shelly smart garage door openers
- And more (NodeMCU multisensor, status monitoring messages, etc.)
MQTT is used every single day multiple times in my house, so it has to be stable and reliable. The Mosquitto container has been 100% reliable.
Using Docker Compose with container dependencies
If you’ve been reading this site, you know that I stress the importance of security. You also know that I believe centralizing logs and log analysis is an important part of home network security. My centralized logging application of choice is Graylog.
Creating a Graylog container turned out to be more complicated than my other containers. Graylog is actually a suite of tools, including Elasticsearch and MongoDB, which each have their own containers that Graylog is dependent upon. In order to manage these dependencies, I installed Graylog using Docker Compose.
Docker containers and logging
Initially, I didn’t even think about container logs, even with my stressing the importance of centralized logging. As I researched centralizing my Docker logs with the rest of my logs I realized there wasn’t a straight forward and simple solution that met my needs. Sure, Docker can log directly to a syslog server like my other systems, but there are complications.
Docker to the rescue of… Docker (I feel like it’s 2009 and instead of saying there is an app for that, I’m saying there is a container for that). Logspout, which is a container, eliminates the complications of using the syslog Docker driver. Set up of Logspout was pretty straightforward, as most Docker containers seem to be.
Organizing all my services with Organizr
The latest Docker container I’ve added is Organizr. If you are like me, you’ve built up a lot of services that have web interfaces over the years. I’ve got:
- Web Servers
- Access Points
- Router (pfSense)
- Switches (check out my networking gear for more details)
- Multimedia Servers (Emby, Plex)
- Smart hubs (Home Assistant)
- Other IoT Devices (Shelly, IP Cameras, Sonoff RF Bridge)
I have plenty of other gear running on my network. It is hard to keep up with all of these URLs and IP addresses. That’s where Organizr comes in. It basically makes a control panel for all your control panels :). And, of course, it runs in a container.
As you can see, I’ve come a long way since installing Plex in Docker. All of my containers have been extremely stable. Now, when I am looking to use a new application, I first consider whether there is a container for it before proceeding. There are many things I currently run that could be containerized (Home Assistant, MySQL, and ZoneMinder to name a few) and someday, I just might migrate them.
Since writing this article, I’ve increased my use of Docker.
What has your container journey been like? Are you using Docker, or considering it? Let me know on Twitter or in the comments!
This page contains affiliate links. If you purchase an item using an affiliate link I will receive a small commission at no cost to you. Affiliates do not influence my recommendations. Read my disclosures for more information.
2 thoughts on “My Docker Containers: A Few Months Later”
Nice article, Marlon! I really enjoy your blog. Personally, I had a bad experience with Docker; I put in a bunch of time/energy and had several containers up and running, including Home Assistant, Mosquitto, Portainer, Node-RED, and a few other containers and a day or two after setting it all up, My containers were all stopping with some weird error (that I don’t remember and should have documented!) and wouldn’t restart. I tried to get help in various forums (including Docker) and I got zero response from anyone. Apparently it was a big mystery. I’ll try again later but for now my home automation is limited to those things that Alexa can control. Obviously, everything has to be voice triggered so nothing is truly “automated” (though I do have numerous routines setup that control several devices with a single voice trigger). Anyway, I’m still in “once bitten, twice shy” mode with Docker for now.
Thanks for the compliment. Sorry you had a bad experience. I’m far from an expert but so far so good. I don’t run Home assistant in a container, just haven’t felt like migrating it over. Weirdest thing I’ve had happens is that Emby doesn’t show up as a running container when I use docker ps, but it is running cause I can access it. Docker ps shows it as exited. This just started happening over the last couple of days (not coincidentally, I’m sure, I also recently upgraded some docker packages). Not a big deal, but my monitoring script relied on docker ps status. Hopefully, if you give a shot again it will work.
Comments are closed.