In diesem Beitrag zeigen wir, wie Sie mit PowerShell Universal ein Docker-Dashboard erstellen.
Docker Desktop
In diesem Beitrag verwenden wir Docker Desktop unter Windows. Docker Desktop bietet eine praktische Oberfläche zum Containerisieren von Anwendungen. Das ist in der Entwicklung und beim Deployment nützlich, um isolierte, wiederholbare Umgebungen sicherzustellen. Wir stellen PowerShell Universal sogar als Docker-Image bereit.
Sobald Docker Desktop läuft, haben Sie Zugriff auf das docker-Kommandozeilentool, um Ihre Docker-Umgebung zu verwalten.
docker --version
Docker version 20.10.8, build 3967b7d
Docker mit PowerShell integrieren
Das docker-Kommandozeilentool gibt standardmäßig stdout-Zeichenfolgen zurück. Sie können das Format der Docker-Ausgabe mit dem Parameter --format und einer Go-Vorlage ändern. Der einfachste Weg zur Integration mit PowerShell ist, die Docker-Ausgabe als JSON zurückzugeben und anschließend ConvertFrom-Json zu verwenden.
Um beispielsweise alle Images als PowerShell-PSCustomObjects zurückzugeben, verwenden Sie Folgendes:
docker image ls --format "{{json .}}" | ConvertFrom-Json | Format-Table
Containers CreatedAt CreatedSince Digest ID Repository SharedSize Size Tag UniqueSize
---------- --------- ------------ ------ -- ---------- ---------- ---- --- ----------
N/A 2021-10-20 13:25:50 -0600 MDT 13 days ago <none> 374e376c25d4 azuresdk/autorest N/A 238MB latest N/A
N/A 2021-10-08 08:25:36 -0600 MDT 3 weeks ago <none> 0a862dc7ed99 owasp/zap2docker-stable N/A 1.71GB latest N/A
N/A 2021-10-02 15:46:50 -0600 MDT 4 weeks ago <none> ee5bfd8960ab ironmansoftware/universal N/A 757MB 2.3.2-ubunutu-18.04-ps-7.1.4 N/A
N/A 2021-10-02 15:46:50 -0600 MDT 4 weeks ago <none> ee5bfd8960ab ironmansoftware/universal N/A 757MB latest N/A
N/A 2021-09-17 09:16:16 -0600 MDT 6 weeks ago 40bd2c207cdf ironmansoftware/universal N/A 754MB <none> N/A
N/A 2021-08-09 23:05:16 -0600 MDT 2 months ago 236e5fcd27d1 ironmansoftware/universal N/A 695MB <none> N/A
N/A 2021-08-09 23:04:09 -0600 MDT 2 months ago <none> 78fc0ed5b396 ironmansoftware/universal N/A 719MB 2.2.1-ubunutu-18.04-ps-7.1.2 N/A
N/A 2021-06-03 10:09:48 -0600 MDT 5 months ago <none> 273e64b77c98 universal N/A 876MB latest N/A
N/A 2021-06-03 10:05:04 -0600 MDT 5 months ago <none> afb49237b478 <none> N/A 852MB <none> N/A
N/A 2021-06-01 22:13:47 -0600 MDT 5 months ago 07316af2d12f ironmansoftware/universal N/A 851MB <none> N/A
N/A 2021-05-26 10:44:30 -0600 MDT 5 months ago <none> 82c9f30a63de mcr.microsoft.com/powershell N/A 291MB lts-ubuntu-18.04 N/A
N/A 2021-05-17 06:33:15 -0600 MDT 5 months ago bb1e31317f90 ironmansoftware/universal N/A 878MB <none> N/A
N/A 2021-02-19 17:18:04 -0700 MST 8 months ago <none> 3fc91f7b6ea3 ironmansoftware/universal N/A 917MB 1.5.13-ubunutu-18.04-ps-7.1.2 N/A
N/A 2021-02-19 17:08:44 -0700 MST 8 months ago <none> ca88ddc60155 <none> N/A 918MB <none> N/A
N/A 2021-02-19 17:02:38 -0700 MST 8 months ago <none> 6d92c5633b00 <none> N/A 1.11GB <none> N/A
N/A 2021-02-19 16:55:27 -0700 MST 8 months ago <none> 0ffeef9f2786 <none> N/A 1.08GB <none> N/A
N/A 2021-02-19 08:51:37 -0700 MST 8 months ago <none> b0d7382eb3ea <none> N/A 539MB <none> N/A
Skripte in PowerShell Universal erstellen
Als Nächstes erstellen wir Skripte in PowerShell Universal, die allerlei Informationen über unsere Docker-Umgebung zurückgeben. Jedes Skript ruft einen anderen Docker-Befehl auf und gibt die Informationen als PSCustomObjects zurück.
Um in PowerShell Universal ein Skript zu erstellen, klicken Sie auf Automation > Scripts > Create New Script.
Docker-Container
Das folgende Skript listet alle Docker-Container als PSCustomObjects auf.
docker ps --format "{{json .}}" | ConvertFrom-Json
Docker-Kontexte
Das folgende Skript listet alle Docker-Kontexte als PSCustomObjects auf.
docker context list --format "{{json .}}" | ConvertFrom-Json
Docker-Festplattennutzung
Das folgende Skript listet die Docker-Festplattennutzung als PSCustomObject auf.
docker system df --format "{{json .}}" | ConvertFrom-Json
Docker-Images
Das folgende Skript listet alle Docker-Images als PSCustomObject auf.
docker image ls --format "{{json .}}" | ConvertFrom-Json
Docker-Netzwerke
Das folgende Skript listet alle Docker-Netzwerke als PSCustomObject auf.
docker network ls --format "{{json .}}" | ConvertFrom-Json
Docker-Systeminfos
Das folgende Skript listet die Docker-Systeminfos als PSCustomObject auf.
docker system info --format "{{json .}}" | ConvertFrom-Json
Docker-Volumes
Das folgende Skript listet alle Docker-Volumes als PSCustomObject auf.
docker volume ls --format "{{json .}}" | ConvertFrom-Json
Sobald alle Skripte erstellt sind, müssen Sie sie mindestens einmal ausführen, um die Daten im nächsten Schritt anzeigen zu können.
Eine PowerShell Universal-Seite erstellen
Als Nächstes erstellen wir Seiten für jedes der Skripte. Die Seiten zeigen die Ausgabe des letzten Job-Laufs in einer Tabelle an.
Klicken Sie auf User Interfaces > Pages > Create New Page, um eine neue Seite zu erstellen. Sie können mit Images beginnen.

Nachdem die Seite erstellt wurde, können Sie sie bearbeiten, indem Sie auf View und anschließend auf Edit klicken.

Im Bearbeitungsmodus klicken Sie auf Toolbox, Data Display und Table. Wählen Sie die Datenquelle des Skripts Images.ps1.

Nachdem Sie die Datenquelle ausgewählt und auf Ok geklickt haben, können Sie die Komponente in der Größe anpassen und die Tabellendaten anzeigen. Speichern Sie die Daten, und die Seite wird mit den angezeigten Tabellendaten neu geladen.

Sie können diesen Vorgang für jedes der Skripte wiederholen.

Um die Icons der Seite anzupassen, klicken Sie im Bearbeitungsmodus auf Properties und wählen Sie das Icon.
Sobald Sie jede Seite konfiguriert haben, können Sie über die Navigation alle Ihre Docker-Daten anzeigen.

Spalten anpassen
Einige Tabellen, insbesondere System Info, enthalten viele Spalten, und Sie möchten möglicherweise die angezeigte Datenmenge reduzieren. Beim Bearbeiten der Tabelle können Sie Spaltennamen und Eigenschaften anpassen.

PowerShell Universal Docker-Vorlage
Dieser Beitrag wurde als PowerShell Universal Docker-Vorlage exportiert. Sie können sie aus unserer Vorlagenbibliothek herunterladen.
Möchten Sie es selbst ausprobieren? Holen Sie sich PowerShell Universal im Download-Center.

Adam Driscoll