/ HOWTO

Liberar espacio usado por Docker.


En Docker hay 3 objetos principales, Imágenes, Contenedores y Volúmenes.

Tal como funcionan los contenedores, al borrarlos pueden quedar volúmenes en nuestro equipo real que no se borren.

Con este comando puedo ver volúmenes de tipo “dangling”, que no están siendo usados por ningún contenedor.

# docker volume ls -f dangling=true
DRIVER              VOLUME NAME
local               1cdd02cf125f74134647deca6b7485fd478b7727d3fe1c02230e45c10ab0fddd
local               2531068d83397f8472106a3bb478eba6b30612aa0daf541ea89e61f851b4384b
local               74eec6ee7bd95a902aa4243ea617244de367569a1b3ae19d7b01642e98ba8c0f
local               7a2efb45eb0fcc7394c62d38ccb2bb087ac9e07615642cdb4db70a3516648b68
local               7e28b0fe573d81760f032f20ea11ac1243ea26172fde9b97b6aa5fa7e95082b1
local               b38e1526c5b7f1fcb697fbcdb96031ecd2e5b5d95efd20c630efe792855736e0
local               f8b780771367c3e6e5591ae362c7ac06343cd5a35a8c00c3af4e40f14848fc53

Y parar borrarlos :

# docker volume rm $(docker volume ls -f dangling=true -q)
1cdd02cf125f74134647deca6b7485fd478b7727d3fe1c02230e45c10ab0fddd
2531068d83397f8472106a3bb478eba6b30612aa0daf541ea89e61f851b4384b
74eec6ee7bd95a902aa4243ea617244de367569a1b3ae19d7b01642e98ba8c0f
7a2efb45eb0fcc7394c62d38ccb2bb087ac9e07615642cdb4db70a3516648b68
7e28b0fe573d81760f032f20ea11ac1243ea26172fde9b97b6aa5fa7e95082b1
b38e1526c5b7f1fcb697fbcdb96031ecd2e5b5d95efd20c630efe792855736e0
f8b780771367c3e6e5591ae362c7ac06343cd5a35a8c00c3af4e40f14848fc53

Puedo ver ahora las imágenes que no están siendo usadas por ningún contenedor. Para borrarlas “docker rmi xxxx”.

# docker images -f dangling=true
REPOSITORY                     TAG                 IMAGE ID            CREATED             SIZE
debian                         9.0                 a2ff708b7413        6 months ago        100MB

Y luego parar borrarlas

# docker rmi debian:9.0
Untagged: debian:9.0
Untagged: debian@sha256:7d067f77d2ae5a23fe6920f8fbc2936c4b0d417e9d01b26372561860750815f0
Deleted: sha256:a2ff708b74137df70ad546f35d6034ef3b3b354b3020c318d790b6132e075367
Deleted: sha256:6b3f8ebf864ca8318043df199cfadafff30d4b7cd36fced3e8aa70a318a7ee7d

Si al tratar de borrarlas me da un error del este tipo, indica que la imágen af555e7b1d29 está siendo usada por el contenedor eae9dd946186. Para eliminarla y también el contenedor debo invocar el comando con un “–force” al final.

# docker rmi mysql80
Error response from daemon: conflict: unable to remove repository reference "mysql80" (must force) - container eae9dd946186 is using its referenced image af555e7b1d29

Y por último parar borrar contenedores que no quiere usar mas:

Primero veo los que tengo creados.

# docker ps -a
CONTAINER ID        IMAGE                                      COMMAND                  CREATED             STATUS                      PORTS               NAMES
68396ba0e84e        microsoft/mssql-server-linux:2017-latest   "/bin/sh -c /opt/mss…"   2 days ago          Exited (137) 47 hours ago                       sql2017
eae9dd946186        mysql80                                    "/entrypoint.sh mysq…"   2 days ago          Exited (0) 2 days ago                           mysql803
011f36f901ad        b4127bf93ca9                               "docker-entrypoint.s…"   3 weeks ago         Exited (0) 6 hours ago                          mariadb102
87524b571ac7        mariadb:10.3                               "docker-entrypoint.s…"   3 weeks ago         Exited (1) 3 weeks ago                          mariadb103

Y luego borro uno con :

# docker rm 68396ba0e84e

Subscríbete y recibirás los últimos artículos semanalmente en tu email.