MAIN MENU
Devolutions Blog

Ankündigungen, Aktualisierungen und Einsichten von Devolutions

PowerShell Universal Building Docker Dashboard for the Devolutions blog.

Ein Docker-Dashboard mit PowerShell Universal erstellen

Diese Anleitung zeigt, wie Sie Docker Desktop mit PowerShell über JSON-Ausgabe integrieren, PowerShell Universal-Skripte für Container, Images und mehr erstellen und jedes Skript mit Pages und Tabellen zu einem vollständigen Docker-Dashboard verbinden.

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.

PowerShell Universal Pages list showing Docker-related page entries.

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

PowerShell Universal page editor open on the Docker Images page.

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

PowerShell Universal table component selecting Images.ps1 as the data source.

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.

PowerShell Universal table showing Docker image repository names and sizes.

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

PowerShell Universal navigation listing Docker Images, Containers, and related pages.

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.

PowerShell Universal Docker dashboard showing containers table and navigation.

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 table column editor with custom names and property settings.

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.