Introduction
Dans ce laboratoire, vous apprendrez à utiliser la commande docker info pour afficher des informations complètes sur votre système Docker. Vous commencerez par exécuter la commande de base docker info pour afficher les détails sur le démon Docker, y compris le nombre de conteneurs et d'images, le pilote de stockage et d'autres informations au niveau du système.
Après l'affichage de base, vous explorerez comment formater la sortie de la commande docker info de différentes manières. Plus précisément, vous apprendrez à formater la sortie au format JSON pour faciliter l'analyse et à utiliser un modèle personnalisé pour afficher uniquement les informations spécifiques dont vous avez besoin. Ce laboratoire vous dotera des compétences nécessaires pour récupérer et interpréter efficacement les informations sur le système Docker.
Afficher les informations de base du système Docker
Dans cette étape, vous apprendrez à afficher les informations de base sur votre système Docker en utilisant la commande docker info. Cette commande fournit des détails sur le démon Docker, y compris le nombre de conteneurs et d'images, le pilote de stockage et d'autres informations au niveau du système.
Ouvrez le terminal dans l'environnement LabEx. Vous pouvez exécuter directement la commande docker info.
docker info
Vous devriez voir une sortie similaire à celle-ci (les détails exacts varieront en fonction de votre environnement) :
Client:
Context: default
Debug Mode: false
Plugins:
buildx: Docker Buildx (Docker Inc.)
Version: v0.10.4
Build: 8842a472b58241d32996951f172f32259cd758e5
compose: Docker Compose (Docker Inc.)
Version: v2.17.2
Build: 6833407
scan: Docker Scan (Docker Inc.)
Version: v0.23.0
Build: 2c50987
Server:
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 0
Server Version: 20.10.21
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Native Overlay Diff: true
userxattr: false
Logging Driver: json-file
Cgroup Driver: systemd
Cgroup Version: 2
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: io.containerd.runc.v2 io.containerd.runtime.v1.linux runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 9ba4b2555a59f71c4c1c1897e93a540b0c52b883
runc version: v1.1.4-0-g5fd4c4d
init version: de40ad0
Security Options:
apparmor
seccomp
Profile: default
cgroupns
Kernel Version: 5.15.0-76-generic
Operating System: Ubuntu 22.04.2 LTS
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 3.84GiB
Name: labex-vm
ID: 6111111111111111111111111111111111111111111111111111111111111111
Docker Root Dir: /var/lib/docker
Debug Mode: false
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
WARNING: No blkio weight, cpus, or mem limits set, Docker may behave unexpectedly without them.
La sortie fournit un aperçu complet de votre installation Docker et de son état actuel. Vous pouvez voir des informations telles que la version de Docker, le nombre de conteneurs et d'images en cours d'exécution, le pilote de stockage utilisé, ainsi que des détails sur le système d'exploitation et le matériel sous-jacents.
Formater la sortie de docker info au format JSON
Dans l'étape précédente, vous avez vu la sortie par défaut de la commande docker info. Cette sortie est lisible par un humain, mais peut être difficile à analyser de manière programmée. Docker propose le paramètre --format pour personnaliser le format de sortie. Dans cette étape, vous apprendrez à formater la sortie de docker info au format JSON.
Le paramètre --format utilise le paquet text/template de Go. Pour afficher les informations au format JSON, vous pouvez utiliser le modèle . | json.
Exécutez la commande suivante dans votre terminal :
docker info --format '{{json .}}'
Vous devriez voir les mêmes informations que précédemment, mais maintenant formatées en tant qu'un seul objet JSON :
{
"Client": {
"Context": "default",
"DebugMode": false,
"Plugins": {
"buildx": {
"Version": "v0.10.4",
"Build": "8842a472b58241d32996951f172f32259cd758e5"
},
"compose": {
"Version": "v2.17.2",
"Build": "6833407"
},
"scan": {
"Version": "v0.23.0",
"Build": "2c50987"
}
}
},
"Server": {
"Containers": 0,
"ContainersRunning": 0,
"ContainersPaused": 0,
"ContainersStopped": 0,
"Images": 0,
"ServerVersion": "20.10.21",
"StorageDriver": "overlay2",
"LoggingDriver": "json-file",
"CgroupDriver": "systemd",
"CgroupVersion": "2",
"Plugins": {
"Volume": ["local"],
"Network": ["bridge", "host", "ipvlan", "macvlan", "null", "overlay"],
"Log": [
"awslogs",
"fluentd",
"gcplogs",
"gelf",
"journald",
"json-file",
"local",
"logentries",
"splunk",
"syslog"
]
},
"Swarm": {
"NodeID": "",
"LocalNodeState": "inactive",
"ControlAvailable": false,
"Error": null,
"RemoteManagers": null
},
"Runtimes": {
"io.containerd.runc.v2": {
"path": "io.containerd.runc.v2"
},
"io.containerd.runtime.v1.linux": {
"path": "io.containerd.runtime.v1.linux"
},
"runc": {
"path": "runc"
}
},
"DefaultRuntime": "runc",
"InitBinary": "docker-init",
"ContainerdVersion": "9ba4b2555a59f71c4c1c1897e93a540b0c52b883",
"RuncVersion": "v1.1.4-0-g5fd4c4d",
"InitVersion": "de40ad0",
"SecurityOptions": ["apparmor", "seccomp", "cgroupns"],
"KernelVersion": "5.15.0-76-generic",
"OperatingSystem": "Ubuntu 22.04.2 LTS",
"OSType": "linux",
"Architecture": "x86_64",
"NCPU": 2,
"MemTotal": 4123631616,
"Name": "labex-vm",
"ID": "6111111111111111111111111111111111111111111111111111111111111111",
"DockerRootDir": "/var/lib/docker",
"DebugMode": false,
"ExperimentalBuild": false,
"InsecureRegistries": ["127.0.0.0/8"],
"LiveRestoreEnabled": false,
"Warnings": [
"No blkio weight, cpus, or mem limits set, Docker may behave unexpectedly without them."
]
}
}
Formater la sortie au format JSON est utile lorsque vous souhaitez traiter les informations avec d'autres outils ou scripts.
Formater la sortie de docker info en utilisant un modèle personnalisé
En plus de formater la sortie au format JSON, vous pouvez utiliser le paramètre --format avec un modèle Go personnalisé pour afficher des informations spécifiques de la sortie de docker info. Cela vous permet d'extraire uniquement les données qui vous intéressent.
La commande docker info fournit une structure de données que vous pouvez accéder dans le modèle. Par exemple, pour afficher la version du serveur Docker et le nombre total de cœurs CPU, vous pouvez utiliser le modèle 'Server Version: {{.ServerVersion}}, CPUs: {{.NCPU}}'.
Exécutez la commande suivante dans votre terminal :
docker info --format 'Server Version: {{.ServerVersion}}, CPUs: {{.NCPU}}'
Vous devriez voir une sortie similaire à celle-ci :
Server Version: 20.10.21, CPUs: 2
Dans ce modèle :
{{.ServerVersion}}accède au champServerVersionde la structure de données dedocker info.{{.NCPU}}accède au champNCPU, qui représente le nombre de cœurs CPU.
Vous pouvez explorer la sortie JSON de l'étape précédente pour identifier d'autres champs que vous pourriez vouloir inclure dans votre modèle personnalisé. Par exemple, pour afficher le système d'exploitation et le répertoire racine de Docker, vous pourriez utiliser le modèle 'OS: {{.OperatingSystem}}, Docker Root Dir: {{.DockerRootDir}}'.
Essayez d'exécuter cette commande :
docker info --format 'OS: {{.OperatingSystem}}, Docker Root Dir: {{.DockerRootDir}}'
Vous devriez voir une sortie similaire à celle-ci :
OS: Ubuntu 22.04.2 LTS, Docker Root Dir: /var/lib/docker
L'utilisation de modèles personnalisés vous donne un contrôle précis sur la sortie de la commande docker info, ce qui facilite l'intégration des informations Docker dans des scripts ou des rapports.
Résumé
Dans ce laboratoire, vous avez appris à utiliser la commande docker info pour afficher des informations complètes sur votre système Docker. Vous avez commencé par exécuter la commande de base docker info pour afficher les détails du démon Docker, y compris le nombre de conteneurs et d'images, le pilote de stockage et d'autres informations au niveau du système.
En outre, vous avez exploré comment formater la sortie de la commande docker info. Vous avez appris à afficher les informations au format JSON pour faciliter l'analyse et l'intégration avec d'autres outils, ainsi qu'à utiliser un modèle Go personnalisé pour afficher des informations spécifiques dans un format adapté. Ces options de formatage offrent une grande flexibilité dans la façon dont vous accédez et utilisez les détails du système Docker.



