Dans cet article, nous verrons comment créer un tableau de bord Docker avec PowerShell Universal.
Docker Desktop
Nous utiliserons Docker Desktop sous Windows dans cet article. Docker Desktop offre une excellente interface pour conteneuriser des applications. C’est utile en développement comme en déploiement pour garantir des environnements isolés et reproductibles. Nous proposons même PowerShell Universal sous forme d’image Docker.
Une fois Docker Desktop en cours d’exécution, vous aurez accès à l’outil en ligne de commande docker pour gérer votre environnement Docker.
docker --version
Docker version 20.10.8, build 3967b7d
Intégrer Docker à PowerShell
L’outil en ligne de commande docker renvoie par défaut des chaînes sur stdout. Vous pouvez modifier le format de la sortie Docker avec le paramètre --format et un modèle Go. Le moyen le plus simple d’intégrer Docker à PowerShell est de renvoyer la sortie Docker en JSON, puis d’utiliser ConvertFrom-Json.
Par exemple, pour renvoyer toutes les images sous forme de PSCustomObject PowerShell, utilisez ce qui suit :
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
Créer des scripts dans PowerShell Universal
Ensuite, nous créerons des scripts dans PowerShell Universal pour renvoyer toutes sortes d’informations sur notre environnement Docker. Chaque script appellera une commande Docker différente et renverra les informations sous forme de PSCustomObject.
Pour créer un script dans PowerShell Universal, cliquez sur Automation > Scripts > Create New Script.
Conteneurs Docker
Le script suivant liste tous les conteneurs Docker sous forme de PSCustomObject.
docker ps --format "{{json .}}" | ConvertFrom-Json
Contextes Docker
Le script suivant liste tous les contextes Docker sous forme de PSCustomObject.
docker context list --format "{{json .}}" | ConvertFrom-Json
Utilisation de l’espace disque Docker
Le script suivant liste l’utilisation de l’espace disque Docker sous forme de PSCustomObject.
docker system df --format "{{json .}}" | ConvertFrom-Json
Images Docker
Le script suivant liste toutes les images Docker sous forme de PSCustomObject.
docker image ls --format "{{json .}}" | ConvertFrom-Json
Réseaux Docker
Le script suivant liste tous les réseaux Docker sous forme de PSCustomObject.
docker network ls --format "{{json .}}" | ConvertFrom-Json
Infos système Docker
Le script suivant liste les infos système Docker sous forme de PSCustomObject.
docker system info --format "{{json .}}" | ConvertFrom-Json
Volumes Docker
Le script suivant liste tous les volumes Docker sous forme de PSCustomObject.
docker volume ls --format "{{json .}}" | ConvertFrom-Json
Une fois tous les scripts créés, vous devez les exécuter au moins une fois pour pouvoir afficher les données à l’étape suivante.
Créer une page PowerShell Universal
Ensuite, nous créerons des pages pour chacun des scripts. Les pages afficheront la sortie de la dernière exécution de tâche dans un tableau.
Cliquez sur User Interfaces > Pages > Create New Page pour créer une nouvelle page. Vous pouvez commencer par Images.

Une fois la page créée, vous pouvez la modifier en cliquant sur View, puis sur Edit.

Une fois en mode édition, cliquez sur Toolbox, Data Display et Table. Sélectionnez la source de données du script Images.ps1.

Après avoir sélectionné la source de données et cliqué sur Ok, vous pouvez redimensionner le composant et afficher les données du tableau. Enregistrez, et la page se rechargera avec les données du tableau affichées.

Vous pouvez répéter ce processus pour chacun des scripts.

Pour personnaliser les icônes de la page, en mode édition, cliquez sur Properties et sélectionnez l’Icon.
Une fois chaque page configurée, vous pouvez parcourir la navigation pour consulter toutes vos données Docker.

Personnaliser les colonnes
Certains tableaux, System Info en particulier, incluent de nombreuses colonnes et vous voudrez peut-être réduire la quantité de données affichées. Lors de l’édition du tableau, vous pouvez personnaliser le nom et les propriétés des colonnes.

Modèle Docker PowerShell Universal
Cet article a été exporté comme modèle Docker PowerShell Universal. Vous pouvez le télécharger depuis notre bibliothèque de modèles.
Envie d’essayer par vous-même? Récupérez PowerShell Universal depuis le centre de téléchargement.

Adam Driscoll