In questo articolo vedremo come creare una dashboard Docker con PowerShell Universal.
Docker Desktop
In questo articolo utilizzeremo Docker Desktop su Windows. Docker Desktop offre un’ottima interfaccia per containerizzare le applicazioni. È utile sia in fase di sviluppo che di distribuzione per garantire ambienti isolati e riproducibili. Offriamo persino PowerShell Universal come immagine Docker.
Una volta avviato Docker Desktop, avrà accesso allo strumento a riga di comando docker per gestire il proprio ambiente Docker.
docker --version
Docker version 20.10.8, build 3967b7d
Integrare Docker con PowerShell
Lo strumento a riga di comando docker restituisce per impostazione predefinita stringhe stdout. È possibile modificare il formato dell’output di Docker utilizzando il parametro --format e specificando un template Go. Il modo più semplice per integrarlo con PowerShell è restituire l’output di Docker come JSON e poi utilizzare ConvertFrom-Json.
Ad esempio, per restituire tutte le immagini come PSCustomObject di PowerShell, utilizzi quanto segue:
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
Creare script in PowerShell Universal
Successivamente, creeremo degli script in PowerShell Universal per restituire ogni tipo di informazione sul nostro ambiente Docker. Ogni script richiamerà un diverso comando Docker e restituirà informazioni come PSCustomObject.
Per creare uno script in PowerShell Universal, faccia clic su Automation > Scripts > Create New Script.
Container Docker
Lo script seguente elenca tutti i container Docker come PSCustomObject.
docker ps --format "{{json .}}" | ConvertFrom-Json
Contesti Docker
Lo script seguente elenca tutti i contesti Docker come PSCustomObject.
docker context list --format "{{json .}}" | ConvertFrom-Json
Utilizzo del disco Docker
Lo script seguente elenca l’utilizzo del disco di Docker come PSCustomObject.
docker system df --format "{{json .}}" | ConvertFrom-Json
Immagini Docker
Lo script seguente elenca tutte le immagini Docker come PSCustomObject.
docker image ls --format "{{json .}}" | ConvertFrom-Json
Reti Docker
Lo script seguente elenca tutte le reti Docker come PSCustomObject.
docker network ls --format "{{json .}}" | ConvertFrom-Json
Informazioni di sistema Docker
Lo script seguente elenca le informazioni di sistema di Docker come PSCustomObject.
docker system info --format "{{json .}}" | ConvertFrom-Json
Volumi Docker
Lo script seguente elenca tutti i volumi Docker come PSCustomObject.
docker volume ls --format "{{json .}}" | ConvertFrom-Json
Una volta creati tutti gli script, dovrà eseguirli tutti almeno una volta per visualizzare i dati nel passaggio successivo.
Creare una pagina in PowerShell Universal
Successivamente, creeremo delle pagine per ciascuno degli script. Le pagine mostreranno l’output dell’ultima esecuzione del job in una tabella.
Faccia clic su User Interfaces > Pages > Create New Page per creare una nuova pagina. Può iniziare con Images.

Una volta creata la pagina, può modificarla facendo clic su View e poi su Edit.

Una volta in modalità di modifica, faccia clic su Toolbox, Data Display e Table. Selezioni lo script Images.ps1 come origine dati.

Dopo aver selezionato l’origine dati e fatto clic su Ok, può ridimensionare il componente e visualizzare i dati della tabella. Salvi i dati e la pagina si ricaricherà mostrando i dati della tabella.

Può ripetere questo processo per ciascuno degli script.

Per personalizzare le icone della pagina, in modalità di modifica, faccia clic su Properties e selezioni Icon.
Una volta configurata ogni pagina, può navigare attraverso il menu per visualizzare tutti i dati Docker.

Personalizzare le colonne
Alcune tabelle, in particolare System Info, includono molte colonne e potrebbe voler ridurre la quantità di dati mostrati. Durante la modifica della tabella, può personalizzare il nome e le proprietà delle colonne.

Template Docker per PowerShell Universal
Questo articolo è stato esportato come template Docker per PowerShell Universal. Può scaricarlo dalla nostra libreria di template.
Vuole provarlo di persona? Scarichi PowerShell Universal dal nostro centro download.

Adam Driscoll