Stand September 2026: Das Image steht fertig auf Docker Hub bereit. Haben Sie Ihr Image bisher selbst erstellt, lesen Sie „Vom selbst erstellten Image zu Docker Hub wechseln“. Haben Sie es nach der früheren Anleitung erstellt, lesen Sie „Umstieg vom bisherigen Image“.
Mit Docker betreiben Sie die QuickHMI Runtime in Version 14 (Lynx) in einem Container. Das Image steht auf Docker Hub unter quickhmi/runtime für Rechner mit x86-64-Prozessor (amd64) und mit ARM-Prozessor (arm64) bereit, etwa einen Raspberry Pi mit 64-Bit-Betriebssystem. Der Container enthält den Runtime Manager für die Konsole und kann mehrere Instanzen ausführen. Instanzen, Projekte und Zertifikate liegen in Docker-Volumes und bleiben erhalten, wenn der Container neu erstellt wird. Sobald Docker startet, etwa nach einem Neustart des Rechners, laufen auch die Instanzen wieder an.
Voraussetzungen
- Docker Desktop (Windows, macOS) oder Docker Engine (Linux)
- Rechner mit amd64- oder arm64-Prozessor; auf einem Raspberry Pi ein 64-Bit-Betriebssystem
- Internetzugang beim Herunterladen des Images
- Lizenzierung per Online-Aktivierung; Dongles und serielle Schnittstellen stehen unter Docker Desktop im Container nicht zur Verfügung
- Die Datenquelle Allen-Bradley steht auf arm64 nicht zur Verfügung.
1. Container starten
docker run -d --name quickhmi --hostname quickhmi --restart unless-stopped --stop-timeout 120 -e ACCEPT_EULA=Y -p 6068:6068 -p 6070:6070 -v qhmi_prog:/home/quickhmi -v qhmi_data:/usr/share/QuickHMI quickhmi/runtime:lynx
Beim ersten Start lädt Docker das passende Image für Ihren Rechner von Docker Hub herunter.
| Option | Bedeutung |
|---|---|
--name quickhmi | Name des Containers, mit dem Sie ihn in allen weiteren Befehlen ansprechen |
--hostname quickhmi | Rechnername im Container; er steht im TLS-Zertifikat, das QuickHMI beim ersten Start erzeugt |
--restart unless-stopped | startet den Container automatisch, sobald Docker wieder läuft |
--stop-timeout 120 | gibt den Instanzen beim Beenden bis zu 120 Sekunden Zeit, geordnet herunterzufahren |
-e ACCEPT_EULA=Y | bestätigt, dass Sie den Lizenzvertrag von QuickHMI akzeptieren; ohne diese Angabe beendet sich der Container sofort, docker logs quickhmi zeigt dann einen Hinweis |
-p 6068:6068 -p 6070:6070 | macht Ports der Projekte erreichbar; welche Ports ein Projekt nutzt, legen Sie im Editor fest |
-v qhmi_prog:/home/quickhmi | Volume für das Programm; Aktualisierungen des Runtime Managers bleiben dadurch erhalten |
-v qhmi_data:/usr/share/QuickHMI | Volume für Instanzen, Projekte und Zertifikate |
quickhmi/runtime:lynx | Image und Tag; lynx steht immer für die aktuelle Version von QuickHMI 14 (Lynx) |
Hinweis: Geben Sie immer beide Volumes an. Ohne sie gehen Instanzen und Projekte verloren, sobald der Container entfernt wird.
Eine bestimmte Version wählen Sie statt lynx mit ihrer Versionsnummer, zum Beispiel quickhmi/runtime:14.15.2. Einen Tag latest gibt es nicht; ohne Tag meldet Docker, das Image sei nicht gefunden worden.
Mit docker ps prüfen Sie, ob der Container läuft.
Mit Docker Compose starten
Alternativ starten Sie den Container mit Docker Compose. Legen Sie dazu in einem leeren Ordner eine Datei compose.yaml mit folgendem Inhalt an und führen Sie in diesem Ordner docker compose up -d aus:
services:
quickhmi:
image: quickhmi/runtime:lynx
container_name: quickhmi
hostname: quickhmi
restart: unless-stopped
stop_grace_period: 120s
environment:
ACCEPT_EULA: "Y"
ports:
- "6068:6068"
- "6070:6070"
volumes:
- qhmi_prog:/home/quickhmi
- qhmi_data:/usr/share/QuickHMI
volumes:
qhmi_prog:
name: qhmi_prog
qhmi_data:
name: qhmi_data
Die Volumes heißen dabei genauso wie beim docker run oben. Sie können also zwischen beiden Wegen wechseln, ohne Daten zu verlieren. Alle weiteren Befehle auf dieser Seite gelten unverändert.
2. Projekt importieren
- Kopieren Sie den Projektexport aus dem Editor in den Container:
docker cp projekt.qexp quickhmi:/usr/share/QuickHMI/import/projekt.qexp
- Importieren Sie das Projekt in Instanz 1:
docker exec -it quickhmi qhmiRM -i /usr/share/QuickHMI/import/projekt.qexp -instance=1
Das Projekt ist danach über die Ports erreichbar, die es im Editor zugewiesen bekommen hat, zum Beispiel https://<Rechner>:6070.
Legen Sie Projektexporte immer im Ordner /usr/share/QuickHMI/import ab. Er liegt im Daten-Volume und bleibt erhalten.
Hinweis: Stammt das Projekt aus einer neueren Version als die QuickHMI Runtime im Image, meldet der Import „Update available“ und startet die Instanz noch nicht. Rufen Sie dann den Runtime Manager erneut auf, zum Beispiel mit
docker exec -it quickhmi qhmiRM -v; das Update wird dabei angewendet. Starten Sie danach die Instanz mitdocker exec -it quickhmi qhmiRM -start -instance=1.
3. Runtime Manager bedienen
Den Runtime Manager für die Konsole starten Sie mit:
docker exec -it quickhmi qhmiRM -r
Dort legen Sie Instanzen an, starten und stoppen sie, ändern Einstellungen und verwalten Zertifikate. Ein grafischer Runtime Manager steht im Container nicht zur Verfügung.
Einzelne Aufgaben lassen sich auch direkt ausführen (jeweils mit docker exec -it quickhmi davor):
| Befehl | Wirkung |
|---|---|
qhmiRM -r | Runtime Manager mit Menü |
qhmiRM -i <Datei> -instance=<ID> | Projekt in eine Instanz importieren |
qhmiRM -start -instance=<ID> | Instanz starten |
qhmiRM -stop -instance=<ID> | Instanz stoppen |
qhmiRM -v | Version anzeigen |
Hinweis: Warten Sie nach dem Start des Containers etwa 20 Sekunden, bis die Instanzen erreichbar sind. Vorher meldet der Runtime Manager bei
-startoder-stopunter Umständen, die Instanz sei bereits gestartet oder gestoppt, ohne den Befehl auszuführen.
Mehrere Instanzen: Das Projekt jeder Instanz muss mit der QuickHMI Ultimate Edition erstellt worden sein. Jede Instanz braucht eigene Ports. Legen Sie die Instanz im Runtime Manager an und stellen Sie die Ports unter „Change project settings“ › „Ports“ ein. Die Ports müssen beim Start des Containers veröffentlicht sein; für weitere Ports erstellen Sie den Container neu, wie unten beschrieben.
4. Container verwalten
| Aufgabe | Vorgehen |
|---|---|
| Stoppen, starten, neu starten | docker stop quickhmi, docker start quickhmi, docker restart quickhmi |
| Protokoll anzeigen | docker logs quickhmi |
| Ports ändern oder ergänzen | docker stop quickhmi, docker rm quickhmi, dann docker run wie oben mit den neuen -p-Angaben und denselben Volumes. Mit Docker Compose: Ports in der compose.yaml ändern und docker compose up -d ausführen |
| Betriebssystem und Java aktualisieren | docker pull quickhmi/runtime:lynx, dann docker stop quickhmi, docker rm quickhmi und docker run wie oben. Mit Docker Compose: docker compose pull und docker compose up -d |
Instanzen, Projekte und Zertifikate bleiben dabei erhalten, solange Sie die Volumes nicht löschen. Neuere QuickHMI-Versionen kommen mit dem Import eines Projekts aus der neueren Editor-Version; ein neueres Image ändert die QuickHMI-Version eines bestehenden Containers nicht.
Daten sichern und wiederherstellen
Sichern Sie die beiden Volumes bei gestopptem Container in einen Ordner auf Ihrem Rechner. Ersetzen Sie <Ordner> durch einen vorhandenen Ordner, zum Beispiel C:\Sicherung unter Windows oder /home/benutzer/sicherung unter Linux.
docker stop quickhmi
docker run --rm -v qhmi_data:/daten -v <Ordner>:/sicherung ubuntu:24.04 tar -czf /sicherung/qhmi_data.tgz -C /daten .
docker run --rm -v qhmi_prog:/daten -v <Ordner>:/sicherung ubuntu:24.04 tar -czf /sicherung/qhmi_prog.tgz -C /daten .
docker start quickhmi
Zum Wiederherstellen spielen Sie die Sicherung in leere Volumes zurück und starten den Container danach wie in Abschnitt 1:
docker rm -f quickhmi
docker volume rm qhmi_data qhmi_prog
docker run --rm -v qhmi_data:/daten -v <Ordner>:/sicherung ubuntu:24.04 tar -xzf /sicherung/qhmi_data.tgz -C /daten
docker run --rm -v qhmi_prog:/daten -v <Ordner>:/sicherung ubuntu:24.04 tar -xzf /sicherung/qhmi_prog.tgz -C /daten
Hinweis:
docker volume rmlöscht die Volumes endgültig. Führen Sie den Befehl erst aus, wenn die Sicherung vollständig vorliegt.
5. Image selbst erstellen
Statt das Image von Docker Hub zu verwenden, können Sie es auch selbst erstellen, zum Beispiel um es anzupassen.
- Laden Sie das Paket im Bereich „Docker Image“ auf der Download-Seite von QuickHMI herunter und entpacken Sie es in einen leeren Ordner. Er enthält danach die Dateien
Dockerfile,entrypoint.shundqhmiRM. - Wechseln Sie in diesen Ordner und führen Sie diesen Befehl aus:
docker buildx build --pull -t qhmi_lynx .
Der Punkt am Ende gehört zum Befehl, er steht für den aktuellen Ordner. qhmi_lynx ist der Name des Images. Das Erstellen dauert je nach System einige Minuten.
- Starten Sie den Container wie in Abschnitt 1, geben Sie am Ende aber
qhmi_lynxstattquickhmi/runtime:lynxan. Die Angabe-e ACCEPT_EULA=Yist dabei nicht nötig, weil Sie dem Lizenzvertrag schon beim Download zugestimmt haben.
Um Betriebssystem und Java zu aktualisieren, führen Sie den Befehl aus Schritt 2 erneut aus und erstellen den Container danach neu (docker stop quickhmi, docker rm quickhmi, docker run).
Vom selbst erstellten Image zu Docker Hub wechseln
Haben Sie das Image bisher selbst erstellt, wechseln Sie mit denselben Volumes zum Image von Docker Hub. Entfernen Sie dazu den bisherigen Container:
docker stop quickhmi
docker rm quickhmi
Starten Sie den Container danach wie in Abschnitt 1. Veröffentlichen Sie dabei alle Ports, die Ihre Instanzen nutzen. Instanzen, Projekte und TLS-Zertifikat bleiben erhalten.
6. Umstieg vom bisherigen Image
Beim bisherigen Image liegen Instanzen und Projekte im Container selbst. Übernehmen Sie sie beim Umstieg einmalig in die neuen Volumes:
- Stoppen Sie den bisherigen Container, entfernen Sie ihn aber noch nicht:
docker stop <bisheriger-container>
- Kopieren Sie Daten und Programmverzeichnis in die neuen Volumes. Führen Sie diese beiden Befehle in einer Linux-Shell aus, unter Windows zum Beispiel in WSL:
docker cp <bisheriger-container>:/usr/share/QuickHMI - | docker run --rm -i -v qhmi_data:/ziel ubuntu:24.04 tar -x -C /ziel --strip-components=1
docker cp <bisheriger-container>:/home/quickhmi - | docker run --rm -i -v qhmi_prog:/ziel ubuntu:24.04 tar -x -C /ziel --strip-components=1
- Starten Sie den Container wie in Abschnitt 1 beschrieben. Ihre Instanzen starten automatisch.
- Prüfen Sie Ihre Projekte. Erst danach entfernen Sie den bisherigen Container mit
docker rm <bisheriger-container>.
Hinweis zum TLS-Zertifikat: Zeigt
docker logs quickhminach dem Umstieg einen Hinweis zum TLS-Zertifikat, erzeugen Sie im Runtime Manager ein neues Zertifikat:docker exec -it quickhmi qhmiRM -r, Instanz wählen, „Certificate manager“. Clients, die bisher dem alten Zertifikat vertraut haben, müssen danach dem neuen vertrauen.
