The Docker Containers I’m Using Now

A few years ago I started getting into Docker. My first containers were to run Plex and Emby, and I still run both of them. The power and ease of Docker containers became evident to me very quickly, and I looked to Docker when I was adding, migrating, or updating services. Now I run more than 20 containers in my home lab across two different servers. In this article, I thought I’d go over the containers I’m running, why I run them in Docker, and how they are working out.

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.

Background: What is Docker?

Docker is a container virtualization technology. Many people are familiar with virtual machines, which are virtual operating systems (OS) running on some host which isn’t necessarily the same OS as the virtual machine. Containers are another type of virtualization. Instead of virtualizing the whole operating system, like Windows and Linux, you virtualize just what you need for an application. For example, you can create a container with Plex, WordPress, or Apache that stores the application. These containers can run on different machines, and even in virtual machines.

If you are interested in Docker you can read my article about how I installed Docker. Another good resource for Docker is their official documentation.

See also  My Experience Upgrading to Ubuntu 22.04: Jammy Jellyfish

What are the benefits of Docker containers?

As I’ve learned over the years, there are many benefits to running Docker containers:

  • Portability — You can easily move containers to different hosts without much work. This is useful when taking a host down for upgrades or when you need to replace a host.
  • Scalability — Docker hosts can run many containers without the need for a ton of resources. If you need more resources you can easily add another Docker host and move and add new containers to that host. I run multiple containers on low-powered hosts.
  • Performance — Containerized apps use less memory than virtual machines. They also stop and start more quickly.
  • Isolation — Containers allow you to isolate applications from each other and from the host operating system. You don’t have to worry about changes in underlying libraries in one container affecting another. You also rarely have to worry about host operating system upgrades and other changes affecting the containers.
  • Easy and safe upgrades — It is easy to upgrade a Docker container to the latest version of an application. It’s also easy to roll back to a previous version if a new version has too many problems.

My key Docker containers

Below are my important Docker containers and how I use them.

Container Name(s)What I use it forAdvantages of being in Docker
PortainerTo manage my Docker hosts and containers.It has easy access to managing and manipulating Docker containers.
Plex To access my home media and the media of my friends from anywhere on the Internet.Easy to update and move to different servers.
EmbyTo access my home media at home.Easy to update and move to different servers.
Graylog To centralize and analyze my system and application logs and alert me when there are problems.Easy to update without affecting or being affected by the host. In the past, I’ve had host updates break Graylog when it wasn’t containerized.
ElasticsearchUsed by the Graylog container.Not affected by host OS updates.
MongoDBUsed by the Graylog container.Not affected by host OS updates.
Omada ControllerTo manage my TP-Link access points and managed network switch.Not affected by host OS updates and easy to manage and move to different machines. Upgrades were much more difficult before moving this to a container
LogspoutI use Logspout to aggregate and centralize my container logs.Has access to the Docker logs.
MosquittoI use this for my MQTT integrations with Home Assistant.Easy to update and move to different servers.
Ring_MQTTI use this to integrate my Ring Mailbox Sensor with Home Assistant (via a custom MQTT server)Easy to update and move to different servers.
WordPressThis is my local WordPress sandbox for designing and playing with plugins and page designsEasy to update and move to different servers.
MySQLUsed by WordPress.Not affected by host OS updates.
PHPMyAdminI use this to manipulate databases using a web-based GUI.Easy to update and move to different servers.
MariaDBUsed by PHPMyAdmin.Not affected by host OS updates.
FilestashEasy access to family shared files from any web browser.Lightweight and portable.
WebDAVFor use with FilestashLightweight and portable.
DokuWikiFor maintaining documentation about my home lab.Lightweight and portable.

Final thoughts

It took me a while to jump on the Docker train (whale?), and I am very glad that I did. Now, when I think about adding services to my home lab, I always consider running it in Docker.

See also  Updating My Home Lab: Proxmox, pfSense, and More

Do you use Docker? What containers are your favorite? Let me know in the comments or on Twitter.

Interested in supporting HomeTechHacker?

Have you found the content on this site useful? If so, are you interested in supporting me and this site? There’s no obligation of course, but I would really appreciate any support you can give. Below are a few ways you can show support:

Thank you! I really appreciate it!

Share this:

The Docker Containers I’m Using Now

by HomeTechHacker time to read: 3 min