El comando docker system

¡Hola de nuevo! Este artículo habla de como obtener información general de todo el sistema docker y hacer «limpieza» de residuos de contenedores, imagenes y volumenes con docker system.

Docker system

El comando docker system tiene varios subcomandos:

• docker system info
• docker system df
• docker system events
• docker system prune

Ver información de un host de docker

Para ver la información sobre el host desde docker podemos ejecutar el comando docker system info o su abreviatura docker info así:

[ger-pc ~]# docker info
Client:
Debug Mode: false

Server:
Containers: 1
Running: 1
Paused: 0
Stopped: 0
Images: 5
Server Version: 19.03.7-ce
Storage Driver: overlay2
Backing Filesystem: <unknown>
Supports d_type: true
Native Overlay Diff: false
Logging Driver: json-file
Cgroup Driver: cgroupfs
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: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: d76c121f76a5fc8a462dc64594aea72fe18e1178.m
runc version: dc9208a3303feef5b3839f4323d9beb36df0a9dd
init version: fec3683
Security Options:
apparmor
seccomp
Profile: default
Kernel Version: 5.5.8-1-MANJARO
Operating System: Manjaro Linux
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 7.233GiB
Name: ger-pc
ID: MWH3:24AM:UAZJ:E5UL:TRI3:F4NZ:Y3JD:IMKP:7G2V:VV6I:L5XF:J2TW
Docker Root Dir: /var/lib/docker
Debug Mode: false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false

De esta forma podremos saber sobre que hardware, versión de docker, características del sistema, sobre el que trabajamos.

Ver uso de disco de cada contenedor

Podemos ver la capacidad de disco usada por cada imagen, contenedor, volumen y build cache. El comando docker system df nos dará un breve resumen del disco por cada componente de docker como se puede ver en el siguiente ejemplo:

[ger-pc ~]# docker system df 
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 6 1 1.006GB 803.4MB (79%)
Containers 1 0 2B 2B (100%)
Local Volumes 0 0 0B 0B
Build Cache 0 0 0B 0B
[ger-pc ~]#

Si además de eso queremos saber cuanto espacio ocupa en disco cada imagen o cada contenedor o cada volumen se tiene que añadir la opción -v al comando como se puede ver en el siguiente ejemplo:

 
[ger-pc ~]# docker system df -v
Images space usage:

REPOSITORY TAG IMAGE ID CREATED SIZE SHARED SIZE UNIQUE SIZE CONTAINERS
nginx alpine 89ec9da68213 3 days ago 19.94MB 0B 19.94MB 0
archlinux latest 9651b9e35f39 2 weeks ago 412.2MB 0B 412.2MB 0
ubuntu 18.04 4e5021d210f6 5 weeks ago 64.21MB 0B 64.21MB 0
centos 8 470671670cac 3 months ago 237.1MB 0B 237.1MB 0
ubuntu 19.04 c88ac1f841b7 3 months ago 69.99MB 0B 69.99MB 0
centos 7 5e35e350aded 5 months ago 203MB 0B 203MB 1

Containers space usage:

CONTAINER ID IMAGE COMMAND LOCAL VOLUMES SIZE CREATED STATUS NAMES
6e034771f891 centos:7 "/bin/bash" 0 2B 25 hours ago Exited (137) 15 hours ago container1

Local Volumes space usage:

VOLUME NAME LINKS SIZE

Build cache usage: 0B

CACHE ID CACHE TYPE SIZE CREATED LAST USED USAGE SHARED
[ger-pc ~]#

Ver eventos en tiempo real

El comando docker system events nos reporta eventos del sistema de docker en tiempo real. Esto nos puede ayudar cuando el sistema tiene algún fallo y queremos evitar que se reproduzca.
La sintaxis del comando es muy sencilla:

docker system events

 

Eliminar residuos de docker

Docker tiene una forma muy rápida de limpiar de limpiar el sistema.
El comando docker system prune nos puede ayudar mucho a realizar la limpieza del sistema,

La sintaxis del comando es:

docker system prune

Un ejemplo de la salida es:

[ger-pc ~]# docker system prune
WARNING! This will remove:
- all stopped containers
- all networks not used by at least one container
- all dangling images
- all dangling build cache

Are you sure you want to continue? [y/N] y
Deleted Containers:
6e034771f891225529dc6fc7eef6f40d537820d7607f68885edc10f2c71c6f9d

Total reclaimed space: 2B
[ger-pc ~]#

Como se puede ver solo eliminará:

  • Contenedores parados
  • Redes sin uso (no tienen contenedores)
  • Imágenes colgadas
  • Build caché colgada

Para no pedir confirmación añadimos el parámetro -f por lo que debería ser docker system prune -f y así se borrará todo lo anterior de golpe, sin confirmación,

Si queremos borrar todas las imágenes podemos ejecutar el comando añadiendo -a quedando el comando así:

docker system prune -a

Para eliminar volúmenes también, hay que añadir el parámetro –volumes como en el siguiente ejemplo:

docker system prune --volumes

 

Si estás interesado en aprender Docker puedes puedes adquirir nuestro libro aquí.

Docker para novatos

Docker para novatos - Gerardo G. Urtiaga-portada-web
¡Si te ha gustado el articulo comparte en tus redes sociales para que podamos llegar a mas gente!

Un saludo

Deja una respuesta