Comment utiliser la commande docker system info pour afficher les informations système

DockerDockerBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

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.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/SystemManagementGroup(["System Management"]) docker/SystemManagementGroup -.-> docker/info("Display System-Wide Information") subgraph Lab Skills docker/info -.-> lab-555249{{"Comment utiliser la commande docker system info pour afficher les informations système"}} end

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 champ ServerVersion de la structure de données de docker info.
  • {{.NCPU}} accède au champ NCPU, 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.