[TUT] Dockhand - Docker Management Alternative zu Portainer

  • Quellenangaben und Verlinkungen zu Texten, Bildmaterialien und Codepassagen, welche in meinem Tutorial verwendet werden
    dockhand.pro/
    github.com/Finsys/dockhand


    Bilder aus eigner Testumgebung

    Ich bestätige, dass mein Tutorial keine Urheberrechte verletzt und bin mir bewusst, für meine Inhalte selbst verantwortlich zu sein.
    Yes

    Hallo Zusammen

    Seit Beginn an habe ich Portainer verwendet um meine Docker Container zu verwalten. Vor kurzem bin ich nun auf dockhand gestoßen.

    Dockhand ist ein modernes, webbasiertes Docker-Management-Tool als Alternative zu Portainer. Es dient der zentralen Steuerung von Containern und Docker Compose-Stacks über mehrere Umgebungen hinweg.

    Kernfunktionen:

    Dockhand bietet Echtzeit-Monitoring von CPU, RAM, Netzwerk und Logs mit ANSI-Farben. Benutzer können Container starten, stoppen, neu starten, Logs einsehen, Dateibrowser nutzen und Bulk-Operationen durchführen.

    Erweiterte Funktionen:

    Automatisierte Updates mit Vulnerabilitäts-Scan (blockiert kritische Schwachstellen), Git-Integration für Stacks, RBAC und Audit-Logs. Es unterstützt Volumes, Netzwerke und Terminal-Zugriff direkt in der UI.

    Erweiterte Features

    Anleitung:

    1. Docker App Öffnen, Links im Menü auf Projekt klicken und dann auf Erstellen.
      This image is exclusive to our members!
      Please log in or register for free to view graphics and attachments.
    2. Als Projektname Dockhand eingeben. Unter Speicherpfad neuen Ordner dockhand anlegen und bestätigen.
      This image is exclusive to our members!
      Please log in or register for free to view graphics and attachments.
    3. Compose Configuration einfügen.
      Die Option "Nach Erstellung sofort ausführen" anhaken und danach auf Bereitstellen klicken.
      This image is exclusive to our members!
      Please log in or register for free to view graphics and attachments.


      (beachtet die rote Meldung nicht. Dies ist nur, weil das Projekt bei mir schon läuft)

      Nachstehend die Compose Configuration. Das Volume müsst ihr je nachdem, wo ihr Docker laufen habt, ändern.

      Mike0185
      January 16, 2026 at 8:46 AM


    4. Danach öffnet sich das Deployment Log und wenn alles erstellt ist, klickt ihr auf OK
    5. Dockhand erreicht ihr danach unter http://<IP-deines-NAS>:3000
    6. Unter Settings, Environments, + Add Environment, könnt ihr nun das Nas hinzufügen.
      This image is exclusive to our members!
      Please log in or register for free to view graphics and attachments.

    7. Unter Settings, Authentication legt ihr dann einen Benutzer an.
      This image is exclusive to our members!
      Please log in or register for free to view graphics and attachments.


    8. Danach ist Dockhand auch schon einsatzbereit und ihr könnt wie auch in Portainer einfach Stacks anlegen.


    Ich hoffe der Guide hilft und bitte seid etwas nachsichtig, da es mein erster Guide ist :)
    Viel Spaß damit!

    UGREEN DXP2800 | UGOS - Crucial 32GB RAM - 1x Lexar NM790 1TB - 1x Seagate IronWolf 8TB + 1x WD gold 10TB Btrfs RAID1
    aktuell noch Windows PC, bald Mac mini | FRITZ!Box 6670 Cable | Ugreen USV

    Edited once, last by Chris1989 (January 16, 2026 at 6:38 PM).

  • fährst Du jetzt zweigleisig oder integriert dockhand alles was Du in Portainer hast?

    Ich hab Portainer mittlerweile den Rücken gekehrt. Seit mehreren monaten nur mehr Dockhand im Einsatz und bin super zufrieden.

    Ist das korrekt, dass man die ganzen Stacks aus Portainer noch "adoptieren" muss?

    Ist da irgendwas zu beachten?

    Was meinst du mit adaptieren?
    Ich hab die Stacks ohne etwas zu ändern einfach in Dockhand kopiert und neu ausgeführt, fertig. Keinerlei Änderungen.

    UGREEN DXP2800 | UGOS - Crucial 32GB RAM - 1x Lexar NM790 1TB - 1x Seagate IronWolf 8TB + 1x WD gold 10TB Btrfs RAID1
    aktuell noch Windows PC, bald Mac mini | FRITZ!Box 6670 Cable | Ugreen USV

  • noch "adoptieren" muss

    Nein. Die YAML sind wie das Koch- oder Backrezept für den jeweiligen Container. So lange man sich dran hält, schmeckt‘s immer gleich. Egal, ob Portainer (handgerührt), Dockhand (Rührgerät) oder Ugreen Docker (Küchenmaschine).

    UGREEN DXP2800 | UGOS 1.19.1.0126 - 16GB RAM - 2x Lexar NM790 1TB Btrfs RAID1 - 2x Seagate IronWolf 4TB Btrfs RAID1
    Raspberry Pi 4B/4 | DietPi 10.6.2 (Debian Trixie) - 1x WD Red SA500 (USB)
     MacBook Air M4 | macOS 26.6.2 |  mobile devices only | FRITZ!Box 7690 (OS 8.25) | Eaton Ellipse ECO 650 DIN USB USV

  • Wenn ich die YAML Datei nun aber importieren möchte fragt er mich nach dem Ursprung des Verzeichnisses. Den kann ich mir leider in Portainer nicht anzeigen lassen. Hat da jemand einen Tipp?

  • Ich hab mal kurz auf der Dockhand Homepage geschaut (nutze es selbst nicht). Die App arbeitet auch mit Stacks.

    Ich halte es so, dass die YAML als Textdateien an anderer Stelle als „manuelle Quelle“ gespeichert sind. Ich würde einfach den jeweiligen Inhalt kopieren und als neuen Stack anlegen. Dann hast du‘s sauber implementiert und kannst prüfen, wie Dockhand damit umgeht.

    UGREEN DXP2800 | UGOS 1.19.1.0126 - 16GB RAM - 2x Lexar NM790 1TB Btrfs RAID1 - 2x Seagate IronWolf 4TB Btrfs RAID1
    Raspberry Pi 4B/4 | DietPi 10.6.2 (Debian Trixie) - 1x WD Red SA500 (USB)
     MacBook Air M4 | macOS 26.6.2 |  mobile devices only | FRITZ!Box 7690 (OS 8.25) | Eaton Ellipse ECO 650 DIN USB USV

  • Also am Besten kopierst einfach den Inhalt, erstellst in Dockhand einen neuen Stack und fügst das ein. So habs zumindest ich gemacht. Einfach Copy Paste.

    UGREEN DXP2800 | UGOS - Crucial 32GB RAM - 1x Lexar NM790 1TB - 1x Seagate IronWolf 8TB + 1x WD gold 10TB Btrfs RAID1
    aktuell noch Windows PC, bald Mac mini | FRITZ!Box 6670 Cable | Ugreen USV

  • Genau so und nicht anders, Compose-Text Copy/Paste. Es ist ja nur der Bauplan

    Du kopierst den Inhalt des Stack in Portainer weg und beendest den sofort innerhalb Portainer und löscht den auch sogleich. Dann in Dockhand einen neuen Stack erstellen und den Inhalt rein kopieren, speichern, deploy, und er läuft wieder. Das war der ganze Umzug.

    Meine Hardware


    • DXP 6800+ | 32 GB | 2 x 20 TB Exos | 2 x 500 GB Sata-SSD | 2 x 4 TB NVME Samsung 990 Pro (Main)
    • DXP 2800 | 16 GB | 2 x 2 TB WDRed SA500 | 2 x 4 TB NVME Samsung 990 EvoPlus (Backup)

    • DH 2300 | 8 GB | 1 x 1 TB Samsung 860 (Testgerät)

  • Ich habe Dockhand über Portainer als Stack ausgeführt. Alle Stacks aus Portainer waren auch in Dockhand vorhanden.

    Zur Zeit nutze ich beide. Aber Dockhand ist das deutlich mächtigere Tool. Sinnvoll für fortgeschrittene User. Portainer ist eher für den Einsteiger.

  • Ich frag für einen Freund, aber macht das Sinn, wenn man....

    Dockhand über Portainer als Stack

    ... oder von mir aus auch umgekehrt installiert? Ich hätte es vermutlich noch nicht mal über die UGOS Pro Docker App installiert, sondern eher nativ, per Docker Run oder Docker-Compose.

    FRITZ!Box 5590 Fiber | UniFi Express 7 | 2,5-GBit-LAN & Wi-Fi 7
    DXP4800 Pro - 2x 1TB Crucial P310 NVMe RAID1 - 2x 2TB Crucial MX500 SSD RAID1 - 2x 16GB Crucial CT16G56C46S5 RAM
    DXP2800 - 2x SanDisk SSD PLUS 1TB - 8GB Samsung M425R1GB4BB0-CWMOL RAM (Original)
    DS224+ 3TB WD Red HDD RAID1 18GB Ram
    Linux Mint | Ubuntu-Server | Windows | iOS | iPadOS
    UGREEN.FORUM/Filebase | Synology-forum/Add-ons | GitHub.com/toafez

  • Geht natürlich auch. Nutze seit Jahren Portainer und komme von Proxmox. Ich konnte alle meine Stacks nutzen und habe hier auch einiges Neues ausprobiert. Dockhand und Filebrowser sind geblieben. Immich (Photo von Ugreen gefällt mir besser), Syncthing, Syncback und einige andere sind wieder verschwunden. Das ist halt das schöne an Docker, installieren testen und bei Nichtgefallen löschen.

  • Da ich auch erst vor kurzem auf Dockhand umgestiegen bin finde ich auch, daß es wenig Sinn macht dockhand über Portainer zu installieren.

    So schafft man sich doch eine Gegenseitige Abhängigkeit zwischen beidem. Portainer weg, dockhand weg :/

    Ich habe auch überlegt, ob ich dockhand als Compose installiere, letztendlich hat man hier dann keine Abhängigkeiten.

    Habe mich aber dann doch dazu entschieden, dockhand über die UGREEN-Docker App als Projekt zu installieren um ggf. auf einfache Weise über die DockerApp Änderungen machen zu können. Auch ist die Docker App ja eh immer installiert, si daß ich hier weniger Abhängigkeit sehe.

    Einen Parallel Betrieb würde ich nur dann betreiben, wenn es unumgänglich ist weil der eine oder andere Container evtl. nicht Portiert werden kann.

    Richtig arbeiten, kann man eh nur womit der Container letztendlich als Stack eingerichtet wurde.

    Meine Hardware

    iDX6011 Pro 64GB RAM, 3x12 TB SG Enterpr. Raid1, 1x Basic, 2x 2TB NVME Lexar NM790 Raid1,

    DXP4800+, 64GB RAM Kingston, 2x8TB WD RedPl. NVME 2x512GB Samsg 970EvoPlus

    DXP2800 1x12TB WDRedPl, 16GB RAM Crucial, NVME 2x 256GB Samsg. Raid1,

    DS1525+, 2x8TB WD, SHR, 1x12 TB SG IronWolf, 1x 3TB WD RedPlus, 2x 2TB NVME Lexar NM790 Raid1, 40GB ECC RAM

    DS218+ btrfs 1x12TB WD, 1x SSD 500GB, RAM 10GB

    USV US3000, EatonEllip.PRO 850DIN, Zyxel XMG-108 8 x 2,5GB, Zyxel GS1200-8 x 1GB,

    Edited once, last by eineb (June 21, 2026 at 8:09 PM).

  • Habe mich aber letztendlich dazu entschieden, Dockhand über die UGREEN-Docker App als Projekt zu installieren.....

    Genau so und nicht anders,,,, hab ich auch so und sollte der Normalzustand sein.

    Meine Hardware


    • DXP 6800+ | 32 GB | 2 x 20 TB Exos | 2 x 500 GB Sata-SSD | 2 x 4 TB NVME Samsung 990 Pro (Main)
    • DXP 2800 | 16 GB | 2 x 2 TB WDRed SA500 | 2 x 4 TB NVME Samsung 990 EvoPlus (Backup)

    • DH 2300 | 8 GB | 1 x 1 TB Samsung 860 (Testgerät)

  • ds106 Vollkommen richtig. Sowohl portainer als auch dockhand sind graphische Verwaltungsoberflächen für z.B. Docker Container. Manchmal erschreckt mich das Halbwissen, welches hier geäußert wird. Oder ich habe etwas nicht richtig verstanden.

    Meine Hardware

    Ugreen IDX6011 Pro | 64GB RAM LPDDR5/x-RAM, 8533 MHz | 4x 4TB WD Red SA500 SATA SSD | 2x 4TB Kingston DC600M SATA SSD
    Ugreen DXP6800 Pro | 64GB RAM Kingston FURY Impact DDR5-RAM, 4800 MHz (außer Betrieb)

  • Manchmal erschreckt mich das Halbwissen, welches hier geäußert wird. Oder ich habe etwas nicht richtig verstanden.

    Kein Grund oberscchlaue Kommentare abzusetzen. wir sind hier um zu diskutieren

    Solche Kommentare entsprechen keinem Austausch sondern snd im Sinne eines guten Forenklimas sehr grenzwertig!

    Wenn nur Helden ihre Ansicht äußern dürften, dann wäre das Forum ganz schön leer, und es besteht auch kein Anspruch auf 100% tige Aussagen, sondern wenn man anderer Meinung ist kann man den anderen darauf hinweisen oder die eigene Ansicht äußern. Wie zb. ds106 das gemacht hat.


    Wenn Dockhand über Portainer installiert wurde, und hernach aus irgendeinem Grund Portainer abstürzt laufen zwar die Container weiter, aber Dockhand kann meineserachtens erstmal nicht mehr Verwaltet werden, und von daher können dann in diesem Moment auch die unter Dockhand aufgesetzten Container erstmal nicht mehr verwaltet werden. Zumindest bis Portainer wieder läuft. Vermutlich bedarf dieser Zustand je nachdem einiges an Reperaturen bis die Container wieder Verwaltet werden können. So war das gemeint.

    Anderes Beispiel, Portainer nur mal stoppen, dann wird auch der unter Portainer erstellte Dockhand Contsiner lam gelegt sowie alle anderen unter Portainer erstellten Container.

    Mit Portainer sieht man im Parallel Betrieb zwar die mit Dockhand aufgesetzten Container, aber verwsltet werden können Sie nicht mehr.

    Das ist dss gleiche ein mit Portainer aufgesetzter Container, ksnn zwar in der Dockerapp auch gesehen werden, angehalten und gestartet werden, aber Verwaltet werden können nur Contsiner welche als Objekt mit der Dockerapp aufgesetzt werden.

    Portainer App, auch eine Verwaltungsapp stoppt doch diese mal über das AppCenter , dann sind slle Container nivht mehr erreichbar.

    Ein Container ist nur erreichbar, solange diejenige Verwaltungs App auch läuft untet welchet der Container aufgesetzt wurde . Ganz egal, ob diese Docker App, Portainer oder Dockhand heißt.

    Unabhängig hiervon, stelle ich nach wie vor die Sinnhaftigkeit in Frage, Dockhand und Portainer nebeneinander laufen zu lassen.

    Verwaltet werden kann ein Container nur von der Apo unter der er entsprechend aufgesetzt wurde. Ich habe das ja wärend dem Umstieg gut mitverfolgen können, da ja wärend dem Umstieg Dockhand und Portainer parallel liefen.

    In Portainer, ist ein unter Dockhand aufgesetzter Container zwar zu sehen es wird aber dezent mit einem kleinen orangefarbenen Iconartigen Symbol angezeigt, dass ein Container (der unter Dockhand installiert wurde) , nicht in Portainer verwaltet werden kann.

    Etwas anders würde die Sache aussehen, wenn alle Container über eine Docker Compose aufgesetzt wurden. Dann dind diese unabhängig davon.

    Aber ohne einer Art GUI, tun sich halt viele User nicht so leicht und bevorzugen eben eine Verwaltungs Oberfläche /App. Auch wenn der eine oder andere der Meinung ist, deshalb soll über die Cli gearbeitet werden. 😉

    Meine Hardware

    iDX6011 Pro 64GB RAM, 3x12 TB SG Enterpr. Raid1, 1x Basic, 2x 2TB NVME Lexar NM790 Raid1,

    DXP4800+, 64GB RAM Kingston, 2x8TB WD RedPl. NVME 2x512GB Samsg 970EvoPlus

    DXP2800 1x12TB WDRedPl, 16GB RAM Crucial, NVME 2x 256GB Samsg. Raid1,

    DS1525+, 2x8TB WD, SHR, 1x12 TB SG IronWolf, 1x 3TB WD RedPlus, 2x 2TB NVME Lexar NM790 Raid1, 40GB ECC RAM

    DS218+ btrfs 1x12TB WD, 1x SSD 500GB, RAM 10GB

    USV US3000, EatonEllip.PRO 850DIN, Zyxel XMG-108 8 x 2,5GB, Zyxel GS1200-8 x 1GB,

  • Es spricht überhaupt nichts dagegen beides gegenseitig zu installieren. Weder Dockhand über Portainer noch Portainer über Dockhand oder Compose!

    Beides bleibt lauffähig selbst wenn das andere deinstalliert wird! Das einzige Problem ist, dass die yml Dateien in unterschiedlichen Pfaden liegen. Wenn man das weiß wo die liegen, ist das kein Problem auch im Fall eines Backups.
    selbst wenn einer von beiden abstürzt funktioniert der andere noch einwandfrei. Selbst wenn beide Container abstürzen kann man über :
    docker stop <Container-Name-oder-ID> docker start <Container-Name-oder-ID>
    Container starten und beenden und zum Beispiel mit filebrowser kann man die jeweilige compose.yml ohne Probleme bearbeiten! So geht da auch mit allen anderen compose-Befehlen.
    Wie Kosmo schon schreibt, es sind lediglich grafische frontends !

    Wenn Dockhand über Portainer installiert wurde, ... Vermutlich bedarf dieser Zustand je nachdem einiges an Reperaturen bis die Container wieder Verwaltet werden können. So war das gemeint.

    Sorry, das ist schlichtweg falsch!

    Ein Container ist nur erreichbar, solange diejenige Verwaltungs App auch läuft untet welchet der Container aufgesetzt wurde . Ganz egal, ob diese Docker App, Portainer oder Dockhand heißt.

    .......

    Verwaltet werden kann ein Container nur von der Apo unter der er entsprechend aufgesetzt wurde. Ich habe das ja wärend dem Umstieg gut mitverfolgen können, da ja wärend dem Umstieg Dockhand und Portainer parallel liefen.

    Sorry, aber anscheindend hast Du das System Docker noch nicht ganz verstanden. Jeder Docker Container stellt sozusagen eine eigene virtuelle Maschine dar die sich auch unabhängig von anderen administrieren, verwalten und verändern lässt.

    Der wesentliche Unterschied zu den "echten" VMs liegt in der Nutzung des Kernels.

    MerkmalDocker / Docker ComposeVirtuelle Maschine (VM)
    BetriebssystemTeilt den Linux-Kernel des HostsEigenes, vollständiges Gast-Betriebssystem
    IsolierungIsolierung auf Prozessebene (weniger strikt)Vollständige Hardware-Isolierung (sehr strikt)
    RessourcenNutzt nur, was die App aktuell brauchtReserviert festen RAM und CPU-Speicher vorab
    StartzeitSekunden (wie ein normaler App-Start)Minuten (muss komplett hochfahren)
    GrößeSehr klein (oft nur wenige Megabytes)Sehr groß (mehrere Gigabytes pro VM)



    Hier noch ein kleiner Hinweis: Die Container welche über die ugreen eigene Docker-App zur Verfügung gestellt werden, sind entweder veraltet oder sind auf teils " in meinen Augen" gefährliche unstabile Versionen verlinkt. Darum bin ich dazu übergegangen die Docker-App von ugreen nicht mehr zu nutzen.
    Ja ich weiß, man kann auch die ugreen Docker App so benutzen, dass man alles wie gewünscht und auch die gewünschten Versionen installiert. Auch diese Docker-App ist halt nur ein angepasstes grafisches Frontend für Compose

    Bei der Docker-App von ugreen ist übrigens auch oft nicht klar aus welcher Quelle das image stammt. Wenn ihr zum Beispiel mal nach dem Image von Python sucht und auf den Link im Namen klickt, werden ihr auf https://hub.docker.com/r/dhi/python weitergeleitet und erhaltet einen 404 - Fehler. Trotzdem funktioniert der Download und die Installation... also woher kommt diese Image? Und wie heißt es richtig?

    Alles in allem spricht meiner Meinung nach aus technischer Sicht nichts dagegen beides mal zu installieren und auszuprobieren. Aus Usability-Gründen sollte man sich aber am Ende für ein Tool entscheiden und dieses dann richtig zu beherrschen. Nur wegen eines Features was die andere App hat beide zu installieren, finde ich nicht sinnvoll und sehe es auf Dauer sogar als Fehlerquelle.

    In sofern, nutzt was ihr wollt, wenn ihr wißt was ihr tut.

    Signatur ...

    DXP4800Pro
    Windows | Linux | Android | iOS
    Github

    Edited once, last by steffenglock (June 22, 2026 at 7:55 AM).

Participate now!

Join our community with over 10,000 members!

Register yourself now for free to get full access to all content, graphics, downloads and other exclusive features!