MAIN MENU
Le blogue Devolutions

Annonces, mises à jour et analyses de Devolutions

PowerShell Universal Building Docker Dashboard for the Devolutions blog.

Créer un tableau de bord Docker avec PowerShell Universal

Ce guide montre comment intégrer Docker Desktop à PowerShell via une sortie JSON, créer des scripts PowerShell Universal pour les conteneurs, les images et plus encore, puis les relier à des Pages avec des tableaux pour un tableau de bord Docker complet.

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.

PowerShell Universal Pages list showing Docker-related page entries.

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

PowerShell Universal page editor open on the Docker Images page.

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

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

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.

PowerShell Universal table showing Docker image repository names and sizes.

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

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

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.

PowerShell Universal Docker dashboard showing containers table and navigation.

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.

PowerShell Universal table column editor with custom names and property settings.

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.