Virtualmin Docker - A full Docker management module

Hi everyone,

I’ve been working on several new third-party modules for virtualmin, this one i’m sharing today called Virtualmin Docker and wanted to share it with the open source community.

The main reason I built this instead of just using a standalone UI like Portainer is that I wanted something that lives natively inside the Virtualmin ecosystem. I also wanted it to be absolutely bulletproof regarding security. A panel running as root shouldn’t be pasting user input into a shell, so I built this from the ground up to be injection-proof (every Docker command uses constant flags and individually escaped values).

What makes it special for Virtualmin users:
It actually reads your Virtualmin domain definitions. If you have a virtual server with proxy settings pointing to a local port (e.g., localhost:3000), this module matches that port to the active container and shows the proxied domain right in the container list.

Main Features:

  • Full Lifecycle Management: Start, stop, restart, kill, pause, and bulk actions for containers.
  • Live Dashboard: Home-screen widget for Webmin, showing running/stopped counts and disk usage.
  • Compose & Images: Manage Compose projects (v2), build from inline Dockerfiles, pull/push, and search Docker Hub.
  • Security & Scanning: Integration with Docker Scout or Trivy for image vulnerability scanning.
  • Backups: Export container filesystems, save images to host tars, and backup/restore local volumes.
  • Granular ACL: Grant or deny specific capabilities (like view, manage, exec, prune) per Webmin user.
  • Rootless Docker: Fully supported via Docker contexts.

Requirements:

  • A host running Webmin or Virtualmin (tested on Webmin 2.621 / Virtualmin 8.0.0 GPL only)
  • The Docker engine + CLI (docker)
  • Perl JSON::PP (ships with Perl 5.14+)

How to Install:
You can review the source code and download the latest release from my GitHub here:
https://github.com/MrZaKaRiA/Virtualmin-Docker

  1. Download the docker.wbm.gz file from the Releases page.
  2. Log into your panel and go to Webmin > Webmin Configuration > Webmin Modules.
  3. Select “From uploaded file”, upload the package, and hit Install.
  4. You’ll find it under Servers > Docker.

The project is completely open-source (GPLv2). If you decide to spin it up on your servers, I would love to hear your feedback. Feel free to open an issue on GitHub if you run into any bugs or have feature requests!

2 Likes

This is a comprehensive module. I wish I could give you more feed but Docker is not on my radar at the minute.

This module is a good example of why there should be a proper catalogue of Webmin/Virtualmin modules.

1 Like

Get on and build one then and add it to the website github, along with a link to it in the menuing system

The infrastructure is closed. Cannot be me that does it. Security, branding and a few other things.

I’m sure the git is visible i.e not hidden, which would imply pr’s from 3rd parties could be made

cool project! Is it possible to update containers? In Portainer I click recreate and then check re-pull image this will keep all container settings the same but update to latest.

1 Like

FYI it appears to be open and is inviting contributions

@MrZaKaRiA See:

1 Like