Introducción
En este laboratorio, aprenderá cómo utilizar el comando docker info para mostrar información integral sobre su sistema Docker. Comenzará ejecutando el comando básico docker info para ver detalles sobre el demonio de Docker, incluyendo la cantidad de contenedores e imágenes, el controlador de almacenamiento y otra información a nivel de sistema.
Después de la visualización básica, explorará cómo formatear la salida del comando docker info de diferentes maneras. En concreto, aprenderá cómo formatear la salida como JSON para facilitar el análisis y cómo utilizar una plantilla personalizada para mostrar solo la información específica que necesita. Este laboratorio le proporcionará las habilidades necesarias para recuperar e interpretar eficazmente la información del sistema Docker.
Mostrar información básica del sistema de Docker
En este paso, aprenderá cómo mostrar información básica sobre su sistema Docker utilizando el comando docker info. Este comando proporciona detalles sobre el demonio de Docker, incluyendo el número de contenedores e imágenes, el controlador de almacenamiento y otra información a nivel de sistema.
Abra la terminal en el entorno LabEx. Puede ejecutar el comando docker info directamente.
docker info
Debería ver una salida similar a esta (los detalles exactos variarán según su entorno):
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 salida proporciona una visión general completa de su instalación de Docker y su estado actual. Puede ver información como la versión de Docker, el número de contenedores e imágenes en ejecución, el controlador de almacenamiento en uso y detalles sobre el sistema operativo y el hardware subyacentes.
Formatear la salida de docker info como JSON
En el paso anterior, vio la salida predeterminada del comando docker info. Esta salida es legible por humanos, pero puede ser difícil de analizar mediante programación. Docker proporciona la bandera --format para personalizar el formato de salida. En este paso, aprenderá cómo formatear la salida de docker info como JSON.
La bandera --format utiliza el paquete text/template de Go. Para mostrar la información como JSON, puede utilizar la plantilla . | json.
Ejecute el siguiente comando en su terminal:
docker info --format '{{json .}}'
Debería ver la misma información que antes, pero ahora formateada como un solo objeto 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."
]
}
}
Formatear la salida como JSON es útil cuando desea procesar la información con otras herramientas o scripts.
Formatear la salida de docker info usando una plantilla personalizada
Además de formatear la salida como JSON, puede utilizar la bandera --format con una plantilla personalizada de Go para mostrar información específica de la salida de docker info. Esto le permite extraer solo los datos que le interesan.
El comando docker info proporciona una estructura de datos a la que puede acceder dentro de la plantilla. Por ejemplo, para mostrar la versión del servidor de Docker y el número total de CPU, puede utilizar la plantilla 'Server Version: {{.ServerVersion}}, CPUs: {{.NCPU}}'.
Ejecute el siguiente comando en su terminal:
docker info --format 'Server Version: {{.ServerVersion}}, CPUs: {{.NCPU}}'
Debería ver una salida similar a esta:
Server Version: 20.10.21, CPUs: 2
En esta plantilla:
{{.ServerVersion}}accede al campoServerVersionde la estructura de datos dedocker info.{{.NCPU}}accede al campoNCPU, que representa el número de CPU.
Puede explorar la salida JSON del paso anterior para identificar otros campos que desee incluir en su plantilla personalizada. Por ejemplo, para mostrar el sistema operativo y el directorio raíz de Docker, podría utilizar la plantilla 'OS: {{.OperatingSystem}}, Docker Root Dir: {{.DockerRootDir}}'.
Intente ejecutar este comando:
docker info --format 'OS: {{.OperatingSystem}}, Docker Root Dir: {{.DockerRootDir}}'
Debería ver una salida similar a esta:
OS: Ubuntu 22.04.2 LTS, Docker Root Dir: /var/lib/docker
Utilizar plantillas personalizadas le da un control detallado sobre la salida del comando docker info, lo que facilita la integración de la información de Docker en scripts o informes.
Resumen
En este laboratorio, aprendiste cómo usar el comando docker info para mostrar información integral sobre tu sistema Docker. Comenzaste ejecutando el comando básico docker info para ver detalles sobre el demonio de Docker, incluyendo la cantidad de contenedores e imágenes, el controlador de almacenamiento y otra información a nivel de sistema.
Además, exploraste cómo formatear la salida del comando docker info. Aprendiste a mostrar la información en formato JSON para facilitar el análisis y la integración con otras herramientas, y también cómo usar una plantilla personalizada de Go para mostrar información específica en un formato adaptado. Estas opciones de formato brindan flexibilidad en cómo accedes y utilizas los detalles del sistema Docker.



