When I started self-hosting apps with Docker containers in my home lab, I followed the advice to manage them with a widely recommended tool — Portainer. Like many, I loved the comfort of using a GUI to manage the containers. When I tried Dockge to improve my enjoyment of working with code in Docker Compose files, I liked it more. It’s not as feature-rich as Portainer, though it’s a worthy alternative. So, I used Portainer and Dockge to manage Docker containers in my home lab to help me discover a winning combo. Over time, using both the apps turned out to be a game-changer for managing containers and stacks in my home lab.

Related
Forget about Portainer, I use this simple tool to manage all my Docker containers on my NAS
I use Dockge to manage all my Docker containers, and I won't look back (except in some instances).
6 Deploying and managing single containers to experiment
Handle with clicks or lines of code in compose files
Portainer makes it easy to manage single containers for my experiments and trials in my home lab. When trying obscure containers like Grocy or Heimdall, it was easier to tackle them in Portainer. Additionally, I found it relatively quicker to deploy and manage single containers with this app. Though Dockge is usable with a singular compose file for individual containers. But, granular controls for volumes, networks, or environments are manageable in a compose YAML file. Besides, Portainer provides me with buttons to control the state of a container, quickly duplicate it with a single click, and add health checks.
5 Edit and manage Docker Compose files under one roof
Comfort with code-friendly mode
Whether it’s for a single container or a stack of several, I’ve grown to like Docker Compose as my go-to method for deploying Docker containers. That’s why I prefer Dockge to install stacks containing apps, as it lets me edit the docker-compose YAML file later. Portainer also supports spinning up containers using docker-compose files, but only for installation. Once a container or stack is up and running, I can’t edit the relevant docker-compose YAML file. Thankfully, that’s not the case with Dockge, and one of the key reasons I still use it alongside Portainer.
4 Taming the volumes and networks of containers
Keeping an eye on persistent data
At times, I adjust the volumes for containers because of space constraints on my Pi’s SSD. Portainer’s graphical interface makes it convenient to inspect, remove, and create new volumes with a few clicks. On the other hand, Dockge lets me change the volume directory in the compose file, but there’s no option to inspect or remove it. Additionally, Dockge makes containers join networks specified in a Docker Compose file. Other than that, there’s no visual network map to inspect all the containers connected to a particular network. Luckily, Portainer accommodates all that besides enabling network troubleshooting for connectivity status and quickly detaching or attaching containers.

Related
5 reasons Podman is better than Docker for self-host enthusiasts
If you're a self-host enthusiast and you're weighing up Docker versus Podman, I strongly recommend Podman.
3 Adding multiple users to access containers
Ease of getting help when something breaks

By default, Dockge only offers single-user support, which makes it challenging to share the containers or administrative access with others. That works as long as I am the only one managing all the containers in my home lab. Still, adding another user can certainly play out well for sharing the home lab setup. Portainer allows adding multiple users along with specific roles and levels of authentication. For example, I’ve created users with read-only access to view my setup. However, my developer friends often troubleshoot whenever any one of the containers coughed up an issue.
2 Accessing logs and monitoring containers
Examine resources usage, even at container-level
Both apps offer container logs streaming in real-time, but some differences make me favor Portainer over Dockge. For starters, I could determine the uptime, CPU, memory, and network usage from the detailed logs in Portainer. Based on that information, I stop and delete any containers consuming unnecessarily high resources. I could even search for specific processes or errors from those logs. However, similar information isn’t available in Dockge, and it provides only the health status of a container as either running or stopped. That’s why I prefer Portainer for more comprehensive monitoring of containers.
1 Handle a cluster of machines in future upgrades
Equip with possibilities to handle more servers
Dockge is designed for a single-host, single-user environment, and its capabilities don’t extend to more than one machine. Automated management of Docker containers running devices other than my Raspberry Pi in my home lab is a challenge. Luckily, Portainer houses built-in Docker Swarm support for automated management and deployment of containers across a cluster of machines. That helps me keep my options open to add a mini PC or more Pi units as servers to my home lab in the future.
Wielding the best of both worlds
I prefer Portainer for its convenience, but there are times I favor Dockge’s simple and lightweight stack management. Also, I prefer defining several parameters and values in code as part of Docker Compose YAML files. Together, both apps complement each other to provide a powerful setup for deploying and managing Docker containers. With each app complementing the other with strengths and weaknesses, I have no qualms about trying different containers and managing the existing ones. In the future, when I expand my home lab with mini PCs or SBCs, containers will still be manageable. When that happens, I’m counting on Portainer to help me orchestrate Docker containers with its Docker Swarm support.


Dockge is a web-based tool to deploy and manage compose-based stacks for Docker containers.