If you have been following us, you are probably aware of our famous Docker media server guide and Traefik reverse proxy guide. You have one or both of those and now you are really ready to put your home server to the test and push it to the boundaries of performance.
But the problem is you do not know what might be some good docker containers to get started with. This is a common question we get and here is our opinion on what are some of the best Docker containers for homelab.
Needless to say, this is a subjective list of best Docker apps. Feel free to share your opinion in the comments or take the survey below to give your input.
Table of Contents
- Why use Dockerized Apps on your Home Server?
- Best Docker Containers for Home Server
- Best Docker Containers for Beginners
- Best Docker Containers for Smart Home
- Best Docker Images for Media Servers
- Popular Docker Images for Media Aggregation
- Best Docker Containers for Homelab Monitoring
- Best Docker Images for Databases
- Must-Have Docker Containers for Security and Privacy
- Must-Have Docker Containers for Administration and Maintenance
- Closing Thoughts on Recommended Docker Images for Beginners
Why use Dockerized Apps on your Home Server?
If you are new to Docker, then I suggest you read our Docker introduction.
In short, Docker is OS-level virtualization that exists in guest filesystems running inside containers. Usually, these are Linux distros, but they can be other Unix-derived operating systems as well.
Containers run on top of a Docker Engine on the host, which isolates containers from the rest of the OS.
This means Docker is fast because there is no GUI, just container apps running on mere commands. This makes Docker an ideal platform for making a server fast and efficient. This also makes it more efficient to use a stack of Docker containers as your home media server. Let's explore some of the best docker containers for home server.
Best Docker Containers for Home Server
In the past we have summarized a list of best apps to automate media management. In this article, we will expand on it but stick to only apps that are available as docker contains.
Once again, this is not meant to be an exhaustive list of all possible/awesome homelab apps. That would be too many to handle and list. Instead, this is meant to be a starter list. Once you get started, in most cases it will become a rabbit hole....a never-ending quest for new Docker containers.
We have tried to group the docker containers into relevant sets (beginners, smart home, media aggregation, etc.). For each set, we tried to pick a few awesome Docker containers.
Best Docker Containers for Beginners
Managing containers may not be easy for you, especially if you run Kubernetes or minikube. Much like Raft for WSL on Windows, Portainer is made for managing containers. Portainer is made for Docker, however, and is a much better choice for managing Docker containers.
Whether you run a network using Swarm or Nomad or just have a lot of containers from experimentation, Portainer is the most popular container manager for Docker images. Portainer allows you to write YAML files and add manifests for Docker applications. You can deploy, configure, troubleshoot, and secure Docker images with Portainer more easily within a user interface.
You can start using Portainer Community Edition to manage containers, images, volumes, networks, and more. [Read: Portainer Docker Compose: FREE & MUST-HAVE Container Manager]
Dozzle is a cost-free, real-time log viewer with a small memory footprint. It has been tested and works with almost any type of container. Dozzle is used for monitoring Docker images by providing an advanced web UI. It supports live stats for memory and CPU usage of Docker containers. You can read multiple logs with split-screen viewing.
Dozzle also supports username authentication with a password. It also gives you a fuzzy search for container names that may be hard to remember. You can even use ReGex to search logs.
If you are experimenting with new Docker containers, Dozzle is a great companion app to easily monitor container logs. [Read: Dozzle Docker Compose: View Docker Logs Like A BOSS]
3. Nginx Proxy Manager
Nginx Proxy Manager (NPM) is a reverse proxy to easily run a website or host an application such as a media or game server. With the Secure Admin Interface, you can create forwarding domains, redirections, streams, and 404 hosts. You also get free SSL using Let's Encrypt or you can use your own custom certificate.
NPM also supports Access Lists and HTTP Authentication with user management, permissions, audit log, and advanced configuration for superusers. The UI is built with Tabler to be user-friendly and useful at the same time. You can also configure multiple users for access with some permissions or grant full access.
If you are new to self-hosting and Traefik is a bit intimidating, then NPM is a good start. We have covered Nginx Proxy Manager installation in our Docker guide.
4. File Browser
File Browser provides a web UI for managing files for multiple users in multiple directories. Each user can upload, delete, preview, rename and edit files in a specified directory. It is one the cleanest and easiest file managers for your homeserver.
All you must do is simply install File Browser on a server and point it to a directory path to access files through the web interface.
File Browser Docker-Compose can be found in Anand's Docker media server guide or his GitHub repo.
Heimdall allows you to create browser shortcuts to easily access any web application, site, or page with a click. Heimdall Application Dashboard without iframes, apps within apps, or abstraction of APIs. Instead of fishing through bookmarks and trying to find your most used apps, Heimdall lets you access through from a web page.
Unlike Heimdall, traditional bookmarks are not easy to find/access and quickly add clutter.
Heimdall supports a wide range of web applications as well as generic URLs. Foundation apps are supported already, no need to add an icon. Enhanced apps (AdGuard Home, Jellyfin, Bazarr, Plex, Portianer, Home Assistant, etc.) may also provide more features, such as stats.
Heimdall is much better than some of the older dashboards like Organizr, which felt bloated.
Heimdall Docker-Compose can be found in Anand's Docker media server guide or his GitHub repo.
Best Docker Containers for Smart Home
6. Home Assistant
Open-source home Powered by a worldwide community of tinkerers and DIY enthusiasts. Perfect to run on a Raspberry Pi or a local server. Home Assistant automation puts local control and privacy first. HA works with over a thousand brands of devices and services. HA automatically scans the network for known devices and keeps your data local, no cloud hosting is required.
Control lights, receive alerts, and monitor devices with HA's advanced automation engine. You can use the official Home Assistant apps and using devices that are always with you, such as your Android smartphone, iPhone or Apple Watch. If you plan to make your home a smart home, Home Assistant is one of the best docker containers for home server. Never go to work leaving your garage door wide open again!
If you want Home Assistant with all the bells and whistles (Add-ons, HACS, etc.) then HassOS is the way to go. Otherwise, Home Assistant Docker-Compose from Anand's GitHub repo.
Node-RED is a programming tool for wiring together flows using a wide range of nodes for hardware devices, APIs, and web services. Flows created in Node-RED are stored using JSON using a lightweight runtime built on NodeJS. You can extend the range of palette nodes for more features from over 225,000 modules in Node's package repository.
Flows can be imported and exported for sharing. The built-in flow library allows you to save functions, templates, and flows. If you want to take advantage of APIs and web services, Node-RED is one the best docker containers for homelab for getting started.
It gets even better if you with HassOS, Node-Red can be set up as an Add-on and it will be fully integrated with Home Assistant automation out of the box.
Install Node-RED from Docker Hub and check out Node-RED on GitHub.
8. Mosquitto MQTT Broker
MQTT is an OASIS Advanced Message Queuing Protocol (AMQP) for the Internet of Things (IoT). MQTT can scale to connect millions of IoT devices. While MQTT clients are small and use microcontrollers, MQTT can scale to support millions of IoT devices. MQTT is lightweight and fast, using small message headers to optimize network bandwidth.
MQTT today is used in many different industries, any that require support for IoT devices. These include automotive, manufacturing, telecommunications, smart enterprise, etc. Because many IoT devices connect over cellular networks that can prove to be unstable, MQTT supports persistent sessions to reconnect the client with the Mosquitto MQTT Broker.
Mosquitto MQTT Broker Docker-Compose can be found in Anand's GitHub repo.
Best Docker Images for Media Servers
Plex is a home media server and a free movie website you can watch any time without a subscription. You can watch over 50,000 free on-demand movies and shows and view over 300 channels of live TV. Plex works on almost any device, including Apple, Android, Smart TVs, and more. [Read: 10 Best Plex Client Devices  – STUTTER-free Streaming]
Plex is also good for accessing content from more countries worldwide than any other online streaming service. With an easy-to-install Plex Media Server and Plex apps, you have instant access to your server using smartphones, tablets, and other streaming devices such as game consoles and smart TVs. Plex is the single most popular way to stream your video, music, and photo collections used by enthusiasts today.
Plex Docker-Compose can be found in Anand's Plex Docker compose guide, Docker media server guide, or his GitHub repo.
Jellyfin is the Free Software Media System that puts you in control of your media, allowing you to access, manage and stream from home or away. Jellyfin is the first choice for many because it is an alternative to the proprietary Plex and Emby home media servers.
Jellyfin also supports several client devices and can be supercharged with several awesome plugins.
Jellyfin was originally forked from Emby 3.5, but eventually became its own application quite different from Emby. Jellyfin does not require a premium license or features for the same remote access for Plex and Emby. Though you may have to be a bit tech-savvy to use Jellyfin, those who do often never return to Plex or Emby again.
Jellyfin Docker installation be found in Anand's Jellyfin Docker Compose guide or his GitHub repo.
We have discussed many music server apps previously. I tried several of them: Ampache, Navidrome, Funkwhale, Subsonic, and more. After Airsonic development halted, I was lost. None of them was simple yet featureful (e.g. being able to control music folder access per user).
Fortunately, Airsonic reappeared as Airsonic-Advanced.
Airsonic-Advanced is a more modern implementation of the Airsonic fork with several key performance and feature enhancements. It adds and supersedes several features in Airsonic.
It offers a web-based media streamer that you can use and share with family and friends. It is designed to handle a very large music collection.
Airsonic-Advanced can play several different audio formats, including MP3, WMA, FLAC, APE, and is compatible with several mobile apps using the Subsonic API.
Airsonic-Advanced Docker-Compose can be found in Anand's GitHub repo.
Tautulli is a third-party app for monitoring and tracking Plex Media Server. You can see what has been watched, who watched it, when they watched it, and what device it was watched on. All statistics are displayed in a well-designed interface made of tables and graphs for easy viewing.
With Tautulli Remote you can view activity and stats away from home. Intuitive graphs allow you to view streaming trends. You can create newsletters for recently added media. You can see the watch history for all users. Tuatulli also allows you to view statistics and detailed media info about your Plex library and delete synced content.
Tautulli Docker-Compose can be found in Anand's GitHub repo.
Bazarr is a companion application to Sonarr and Radarr that manages and downloads subtitles. You can search automatically for missing subtitles and download them as they become available. You can find all matching subtitles, choose one, and download it directly to your media library.
Bazarr Docker-Compose can be found in Anand's GitHub repo.
Ombi sports a slick, responsive, and mobile-friendly UI. Ombi lets users manage media requests such as movies, music, and TV shows with a user management system that supports Plex, Emby, and local accounts. You can allow users to have requests automatically approved and added to Sonarr, Radarr, Lidarr and others. It also automatically updates the status of user requests.
You can create custom notifications for users. With secure authentication to a landing page, Ombi allows you to add custom notification text to inform your users of downtime and the availability of your Plex or Emby Server. Ombi will show if the request is already being served on Plex or Emby, and also even show if it's already being monitored.
Ombi Docker-Compose can be found in Anand's GitHub repo.
FreshRSS is a lightweight, multi-user, self-hosted RSS feed aggregator that is customizable and easy to use. FreshRSS works with Mastodon, Friendica, WordPress, Blogger, FeedBurner, and many others. FreshRSS also natively supports web scraping for sites that do not provide RSS and Atom.
You can follow websites, podcasts, and video channels in a single app with FreshRSS. The FreshRSS Reader allows you to read your articles. The Search allows you to save queries for quick access. You can import or export and generate feeds, customize with themes and extensions, and stay connected to your feeds in real-time.
Check out FreshRSS on GitHub.
Popular Docker Images for Media Aggregation
Sonarr (formerly NzbDrone) is a PVR for TV Shows. You add the shows you want to see to Sonarr and it will search various BitTorrent and Usenet providers for the show episodes. If it is available, Sonarr will grab the index file and send it to your BitTorrent client or NZB client for downloading.
Once the download is complete it can rename your episode to a specified format and move it to a folder of your choice (TV Show library). It can even update your Plex library or notify you when a new episode is ready for you to watch.
Sonarr Docker-Compose can be found in Anand's Docker media server guide or his GitHub repo.
Radarr is a Movie PVR. You add the movies you want to see to Radarr and it will search various BitTorrent and Usenet providers for the movie. If it is available, Radarr will grab the index file and send it to your BitTorrent client or NZB client for downloading.
Once the download is complete it can rename your movie to a specified format and move it to a folder of your choice (movie library). It can even update your Plex library or notify you when a new movie is ready for you to watch. [Read: CouchPotato vs SickBeard, SickRage, or Sonarr for beginners]
Radarr Docker-Compose can be found in Anand's Docker media server guide or his GitHub repo.
Lidarr is a music collection manager for Usenet and BitTorrent that monitors multiple RSS feeds for new albums from your favorite artists. It uses indexers to grab, sort, and rename metadata and interfaces with client apps. You can also import lists from services like LastFM.
Lidarr features a calendar for viewing upcoming albums and a manual search for finding all releases. It can automatically detect new tracks and replace lower-quality audio formats with higher-quality audio tracks. It works with all major platforms, including Windows, Linux, macOS, and RaspiOS.
Lidarr Docker-Compose can be found in Anand's GitHub repo.
Readarr is an ebook and audiobook collection manager for Usenet and BitTorrent that can monitor multiple RSS feeds for new books. It will grab, sort, and rename them according to metadata. You can watch for better quality copies of ebooks and audiobooks and configure an automatic upgrade if Readarr finds a better-quality format.
Readarr has support for all major platforms, including Windows, Linux, macOS, and Raspberry Pi OS. You can scan your existing library and download missing books from a saga or trilogy. Automatic failed download handling enables Readarr to try another release if one fails until it finds the right one. You can also use the manual search to pick a specific release. Readarr also tells you why a release was not downloaded automatically.
There is advanced customization for profiles, fully configurable book renaming, and support for apps such as SABnzbd, NZBGet, QBittorrent, Deluge, rTorrent, Transmission, uTorrent, and other download clients. If you use Calibre to read on your computer, you will be happy to know Readarr has full integration with Calibre.
Readarr Docker-Compose can be found in Anand's GitHub repo.
Prowlarr is an indexer manager and proxy built on the *arr .NET/ReactJS stack. Prowlarr supports torrent trackers and Usenet indexers to integrate with PVR apps, Lidarr, Mylar3, Radarr, Readarr, and Sonarr. Some of the features that make Prowlarr worth using include:
- Manual searching of trackers and indexers by category
- Parameter-based manual searching
- Indexer health and status notifications
- Per-indexer proxy support (SOCKS4, SOCKS5, HTTP, Flaresolverr)
- Indexer history and statistics
With Prowlarr, you will have one place to manage all your indexers for all your Arr apps. It is a great replacement for Jackett.
Prowlarr Docker-Compose can be found in Anand's GitHub repo.
SABnzbd is an Open Source Binary Newsreader that makes Usenet easy through automation. When you add an
.nzb file, SABnzbd automatically verifies, repairs, extracts, and archives your download. Sonarr, Radarr, and Lidarr integrate with SABnzbd easily. SABnzbd can also handle RSS feeds. An easy setup wizard and self-analysis tools can be used to verify your setup.
You can manage SABnzbd through a web browser from just about any PC, smartphone, or Android device through the Glitter interface. Alternatively, you can use apps like LunaSea for Android and iOS, nzb360 for Android, and nzbUnity on the iPhone and iPad. SABnzbd runs on Windows, macOS, Unix, and NAS devices.
With the development of NzbGet slowing down/stopping, SABnzbd is the best option right now.
SABnzbd Docker-Compose can be found in Anand's GitHub repo.
qBittorrent is one of the best torrent clients you can use. It is fast, easy, and free to use. You can install it as a native macOS GUI app, or on Windows, Linux, and BSD. We have covered qBittorrent installation on Linux previously. But Docker is so much easier.
qBittorrent uses very little memory with light overhead, which makes it well-suited for home media servers. You can configure watch directories, bad peer blocklists, UPnP and NAT-PMP port forwarding, webseed support, tracker editing, global and per-torrent speed limits, and more. With an easy-to-use web interface, encryption, and peer exchange, qBittorrent opens magnetic links and handles DHT and µTP.
Along with Prowlarr, torrent websites, or private torrent trackers, you will have yourself a content aggregation machine.
qBittorrent Docker-Compose can be found in Anand's GitHub repo.
MeTube is a web UI for the famous youtube-dl or yt-dl you may be familiar with on the Linux command line. Why open a terminal and run a command when you can have a web interface? You are no longer limited to just downloading videos from YouTube.
Browser extensions for Chrome and Firefox allow you to right-click videos and send them directly to MeTube. You can download them from anywhere.
MeTube Docker-Compose can be found in Anand's GitHub repo.
Best Docker Containers for Homelab Monitoring
24. Uptime Kuma
Uptime Kuma is an open-source monitoring tool for services over HTTP, TCP, DNS, and other protocols. Uptime Kuma will send you notification alerts of downtime. You can also create custom status pages for users.
Combined with Prometheus, Uptime Kuma can display metrics about each monitoring target. There are pre-made Grafana dashboards available to pull the metrics from Prometheus and display them as nice monitoring dashboards.
Uptime Kuma Docker-Compose can be found in Anand's GitHub repo.
Grafana is an open and composable observability and data visualization platform that allows you to visualize metrics, logs, and traces from Prometheus, Loki, Elasticsearch, InfluxDB, Postgres, and others. Client-side graphs and panel plugins provide many ways to visualize metrics and logs. Grafana also allows you to create your own dynamic dashboards mixing many different data sources into the same graph.
Grafana also allows you to use ad-hoc queries and dynamic drill-down, designed with split-view capability for side-by-side comparison. Grafana Alerting can send alerts through notifiers such as PagerDuty, SMS, email, VictorOps, OpsGenie, or Slack. You can use dashboards and add features from plugins available in the official library.
Installation was covered in our Grafana Docker-Compose guide or can be found in Anand's GitHub repo.
Grafana Dashboard Tutorials
Netdata is a real-time performance and health monitoring platform that allows you to monitor disk activity, bandwidth usage, and website visits. Designed by system administrators, DevOps engineers, and developers, Netdata is made for systems, hardware, applications, and Docker containers.
Netdata collects all available metrics (not some) and organizes data into human-readable charts while using only 1% of a single core on the CPU. The open-source Netdata Agent collects 10,000 metrics per server to troubleshoot complex IT infrastructures.
Netdata Cloud provides even more features such as Metric Correlations and the Anomaly Advisor. The free community plan allows you to monitor unlimited nodes, containers, and metrics.
Netdata can be installed natively or on docker.
Best Docker Images for Databases
Prometheus is a TSDB (Time Series Database) application for event monitoring and alerting that records real-time metrics using an HTTP pull model, flexible queries, and real-time alerting. It collects metrics from targets at intervals using rule expressions and displays the results. You can also find Prometheus on Quay.io.
Features specific to Prometheus that are not available in other monitoring systems include:
- A multi-dimensional data model
- Flexible query language
- No dependency on distributed storage
- Time series collection via a pull model over HTTP
- Pushing time series via an intermediary gateway
- Targets discovery via service or static configuration
- Multiple modes of graphing and dashboarding
- Hierarchical and horizontal federation support
If you want to get into monitoring and charting anything in your homelab then, Prometheus is a must-have.
Prometheus Docker-Compose can be found in Anand's GitHub repo.
InfluxDB is another TSDB developed by InfluxData to store and retrieve data records part of a "time series". The TSDB shows the context of the relationship between timestamped data points. Fast insertion and fast retrieval into InfluxDB is made possible with developer tools.
Serverless real-time monitoring of large amounts of time-stamped data on a dashboarding engine with analytics service makes InfluxDB fast and elastic. Use cases include DevOps monitoring, application metrics, IoT sensor data, and real-time analytics supporting queries, tasks, and agents all in one place.
InfluxDB is a popular database choice for smart home sensors in Home Assistant. It works flawlessly with Grafana for dashboarding.
InfluxDB Docker installation be found in Anand's InfluxDB Docker Compose guide or his GitHub repo.
You may have never used SQL commands, but you probably have heard of MySQL because of its many uses. MySQL Community Edition is free but MySQL itself is a commercial application. The developers of MySQL developed MariaDB as an option that would always be free and open-source.
MariaDB Server is also developed to maintain compatibility with MySQL, allowing developers to use the same open-source code libraries for MariaDB as MySQL. Some names you might recognize, such as Wikipedia, DBS Bank, and ServiceNow use MariaDB, you can now recognize them as using MySQL.
MariaDB is a popular choice for self-hosting enthusiasts as a database for Home Assistant, Authelia, WordPress, Airsonic Advanced, and more.
MariaDB Docker-Compose can be found in Anand's GitHub repo.
If you use MySQL but do not enjoy running SQL commands, let phpMyAdmin do it for you. Most websites use a database and a great number of web applications as well. SQL is used everywhere, but MySQL stands apart from the rest because it is so widely developed.
It should be no wonder then that having a tool to help with the administration of MySQL would become popular. At the time phpMyAdmin was introduced, PHP was the web language to learn for Linux web servers. Back in the day, however, there were not nearly as many web applications using databases as today, most sites were static.
Not only is phpMyAdmin free software but it is written in a web language. There is no programming language to install to make it run because all you need is a web browser. With phpMyAdmin, you can manage a database like a database programmer without becoming one.
phpMyAdmin Docker-Compose can be found in Anand's GitHub repo.
Must-Have Docker Containers for Security and Privacy
Authelia is a companion for reverse proxies for authentication and authorization with single sign-on via a web portal. Security is part of the design process, making it more than a mere identity and access management portal. Fast, efficient, and lightweight, Authelia is also open-source.
Authelia also prevents brute-force login attempts by limiting the number of logins before a user is locked out for a time. It also has built-in support for password resets with email validation that works with LDAP and internal passwords.
Authelia also supports two-factor authorization using TOTP, and even hardware security keys.
The best thing we like about Authelia is how easy it is to approve logins with Duo push notifications (no manual entries, just one click/touch).
Authelia Docker-Compose can be found in Anand's GitHub repo. If you prefer a detailed guide, then check out our Authelia docker setup guide.
Vaultwarden (formerly Bitwarden RS) is a secure password storage and sharing Docker application based on Bitwarden. You can store logins, secure notes, and attachments, which you can access anywhere on any device. Authenticator, U2F YubiKey and Duo support make Vaultwarden a good choice for personal, family, or organizational use.
Vaultwarden also acts as a service for many Bitwarden apps and browser extensions using its own API for Bitwarden. You can configure a Bitwarden mobile application or browser extension for compatibility with Vaultwarden. You can also use a custom domain and API endpoint with Bitwarden for better accessibility.
You can find Vaultwarden on GitHub.
33. AdGuard Home
Ads are what drive multimedia and make most of the TV and movies you watch free and paid. They eat up most of your bandwidth (and a lot of your attention) whether you are seeing them or being tracked in the background.
AdGuard Home is a network-wide ad and tracker blocking DNS server for all your home devices that work without the need for client-side apps. Two of the biggest advantages of AdGuard Home over PiHole are: 1) DoH/DoT out of the box and 2) Ability to add whitelist a list of domains from a file.
We have previously covered AdGuard Home installation on Ubuntu/Debian, using Docker Compose, and AdGuard Home configuration, in detail. AdGuard Home Docker-Compose can be found in Anand's GitHub repo.
34. Docker Socket Proxy
Any time you expose the Docker socket to a service, you are making it easier for the container to gain root access on the host system. But, some apps require access to Docker socket and API (eg. Traefik, Glances, Dozzle, Watchtower, etc.).
If Traefik gets compromised, then your host system could be compromised. Traefik's own documentation lists using a Socket Proxy as a solution.
A socket proxy is like a firewall for the docker socket/API. You can allow or deny access to certain API.
We have previously covered Docker Socket Proxy in our best security practices for Docker guide.
CrowdSec is an open-source, participative IPS. Cybercriminals use IP addresses to mask their locations, but CrowdSec provides a platform to secure all Internet-exposed infrastructures. Easy to use and set up, you don't have to earn your doctorate in cyber security to use CrowdSec.
Designed to be a crowd-based cyber security suite to protect online services, adding the CrowdSec docker image to your stack will protect your infrastructure. You can also generate dashboards for Prometheus to see and act on vulnerabilities. CrowdSec users support the largest Cyber Threat Intelligence (CTI) network today, allowing you to block IPs with Threat Intel Platform (TIP).
How-To Series: Crowd Security Intrusion Prevention System
Must-Have Docker Containers for Administration and Maintenance
36. IT Tools
IT Tools is a collection of handy online tools. While the project claims to be useful for developers and people in IT, we think it could be useful for self-hosters and homelab enthusiasts too.
For example, in our past guides, we have referred to external websites to generate strong passwords and tokens. Now you can do that on your own infrastructure for improved security and privacy.
There are several great tools, including, a basic auth generator, date/time converter, QR code generator, Git cheatsheet, Crontab generator, Docker run to Docker Compose converter, IPv4 subnet calculator, and more.
In addition, the UI looks polished and cool. In our opinion, it is a great docker container for beginners to add to their collection.
Apache Guacamole uses HTML5 to access remote and virtual desktops through a web browser. Guacamole is a clientless remote desktop gateway that supports standard protocols like VNC, RDP, and SSH. It is a "clientless" web server because it has no plugins or client applications.
Guacamole requires 3 services: Guacamole, Guacamole Daemon, and a database. In the past installing Guacamole was a nightmare. If we had to pick one app that Docker has simplified the installation for, that would be Guacamole.
No more port forwarding for SSH, VNC, or RDP (you should be doing it for RDP and VNC anyways). You can install Guacamole, put it behind a reverse proxy like Traefik, and you have yourself a secure way to access all your system through web browser.
Guacamole Docker Compose can be found in Anand's Guacamole guide or his GitHub repo
QDirStat is one of many system utilities available as popular Docker images for home servers. It helps you to monitor your disk space and usage, providing you also with utilities for keeping your disk storage space organized and clean. The QDirStat UI is accessed through a web browser or a VNC client application.
If you are a home server owner, and something appears to be hogging your disk space, then qDirStat is a great way to troubleshoot.
39. Docker Garbage Collector
After a while of tinkering with docker containers, stored orphan images and volumes can take up several gigabytes of space. While you can use
docker system prune, Docker garbage collector automates the job for you. A good Docker garbage collection example can be found in the recently posted article Docker Media Server guide.
The best Docker images for garbage collection are
If you are considering
docker-gc, one alternative you will immediately notice is
spotify/docker-gc is no longer being developed. Using
docker-gc-cron is a great alternative because it is actively developed and, in fact, uses
spotify/docker-gc under the hood.
40. DDNS Updater
qmcgaw/ddns-updater Docker container image is a lightweight universal DDNS Updater with web UI for reports. It updates Dynamic DNS from a large variety of service providers.
DDNS is more convenient and requires less support for considerably less cost than a static IP. A carrier-grade NAT from Verizon or T-Mobile uses a shared IP for many home internet devices and requires static IP mapping. A more practical solution for self-hosting on a CGNAT is DDNS.
DDNS works without an IP from an ISP that uses coaxial, ethernet, or fiber optic media connections. Though a DHCP IP address that comes from traditional ISPs rarely changes, they are not static. Typically, you have to purchase or lease a static IP, and your ISP might be able to provide you with one. [Read: Cloudflare Settings for Traefik Docker: DDNS, CNAMEs, & Tweaks]
What is the best OS for home Docker server?
We believe Ubuntu Server or Debian are the best operating systems for a Docker server. But there are several customized home server operating systems such as open media vault, TrueNAS, and Unraid that make it simpler to maintain docker stacks.
Can you run Docker on a server?
Absolutely! Docker is made for servers and the best Docker containers are made to run faster in Docker than the server applications would without Docker. If you were to run all the same server software without Docker on a server machine, it would definitely not perform nearly as well as it does inside a Docker container.
Are Docker containers worth it?
Docker containers may occasionally require you to be more tech-savvy than you want to be, but in the end, it is well worth the journey. The increased performance, speed, and efficiency that come along with Dockerization easily make it worth the effort. While there are products you can buy from Docker, Inc., for the most part, Docker is free.
How many Docker containers can I run on a server?
CPU and memory usage can be capped, but to the host machine, each container is running as a command-line process without the need for a GUI. The difference is not exactly how many containers you have, but how many you are using at any one time. You will find that Docker simply makes more efficient use of your hardware. For example, Anand runs over 60 docker containers on this home server.
Closing Thoughts on Recommended Docker Images for Beginners
If you are planning to build a home server and you want it to run smoothly and be isolated from the host system, Docker is the ideal platform. One other great thing is if you make a mistake setting up a Docker container you can just scrap the container and start over.
This is much easier for a beginner than reinstalling an entire operating system when you cannot pinpoint the reason your server does not work.
The best Docker containers for home server may depend on your usage, but generally, Docker runs faster. It allows you to install all kinds of container apps. Instead of using more hardware for efficiency, Docker uses hardware more efficiently.
What we have provided is a highly subjective list of great apps for Docker home servers. But we believe that these apps should satisfy most typical homelabers and self-hosters. If you think another app must be on this list, feel free to share your thoughts in the comments section.