Compartir comentarios
Las respuestas se generan en base a la documentación.

docker container prune

DescripciónElimina todos los contenedores detenidos
Usodocker container prune [OPTIONS]

Descripción

Elimina todos los contenedores detenidos.

Opciones

OpciónPredeterminadoDescripción
--filterProporciona valores de filtro (por ejemplo, until=<timestamp>)
-f, --forceNo solicita confirmación

Ejemplos

Eliminar (prune) contenedores

$ docker container prune
WARNING! This will remove all stopped containers.
Are you sure you want to continue? [y/N] y
Deleted Containers:
4a7f7eebae0f63178aff7eb0aa39cd3f0627a203ab2df258c1a00b456cf20063
f98f9c2aa1eaf727e4ec9c0283bc7d4aa4762fbdba7f26191f26c97f64090360

Total reclaimed space: 212 B

Filtrado (--filter)

El formato del flag de filtrado (--filter) es "clave=valor". Si hay más de un filtro, pasa múltiples flags (por ejemplo, --filter "foo=bar" --filter "bif=baz").

Cuando se proporcionan varios filtros, se combinan de la siguiente manera:

  • Los filtros múltiples con diferentes claves se combinan utilizando la lógica AND. Un contenedor debe cumplir con todas las condiciones del filtro para ser eliminado.
  • Los filtros múltiples con la misma clave se combinan utilizando la lógica OR. Un contenedor se elimina si coincide con cualquiera de los valores de esa clave.

Por ejemplo, --filter "label=foo" --filter "until=24h" elimina los contenedores que tienen la etiqueta foo y que fueron creados hace más de 24 horas. Por el contrario, --filter "label=foo" --filter "label=bar" elimina los contenedores que tienen ya sea la etiqueta foo o bar.

Los filtros admitidos actualmente son:

  • until (<timestamp>) - solo elimina los contenedores creados antes de la marca de tiempo indicada
  • label (label=<key>, label=<key>=<value>, label!=<key>, o label!=<key>=<value>) - solo elimina los contenedores con (o sin, en caso de usar label!=...) las etiquetas especificadas.

El filtro until puede ser una marca de tiempo Unix, marcas de tiempo con formato de fecha, o cadenas de duración de Go admitidas por ParseDuration (por ejemplo, 10m, 1h30m) calculadas en relación con la hora de la máquina del demonio. Los formatos admitidos para las marcas de tiempo con formato de fecha incluyen RFC3339Nano, RFC3339, 2006-01-02T15:04:05, 2006-01-02T15:04:05.999999999, 2006-01-02T07:00 y 2006-01-02. Se utilizará la zona horaria local del demonio si no proporcionas un desfase de zona horaria Z o +-00:00 al final de la marca de tiempo. Al proporcionar marcas de tiempo Unix, introduce segundos[.nanosegundos], donde segundos es el número de segundos que han transcurrido desde el 1 de enero de 1970 (medianoche UTC/GMT), sin contar los segundos intercalares (también conocidos como época Unix o hora Unix), y el campo opcional .nanosegundos es una fracción de segundo de no más de nueve dígitos de longitud.

El filtro label acepta dos formatos. Uno es el label=... (label=<key> o label=<key>=<value>), que elimina contenedores con las etiquetas especificadas. El otro formato es label!=... (label!=<key> o label!=<key>=<value>), que elimina contenedores sin las etiquetas especificadas.

El siguiente ejemplo elimina los contenedores creados hace más de 5 minutos:

$ docker ps -a --format 'table {{.ID}}\t{{.Image}}\t{{.Command}}\t{{.CreatedAt}}\t{{.Status}}'

CONTAINER ID        IMAGE               COMMAND             CREATED AT                      STATUS
61b9efa71024        busybox             "sh"                2017-01-04 13:23:33 -0800 PST   Exited (0) 41 seconds ago
53a9bc23a516        busybox             "sh"                2017-01-04 13:11:59 -0800 PST   Exited (0) 12 minutes ago

$ docker container prune --force --filter "until=5m"

Deleted Containers:
53a9bc23a5168b6caa2bfbefddf1b30f93c7ad57f3dec271fd32707497cb9369

Total reclaimed space: 25 B

$ docker ps -a --format 'table {{.ID}}\t{{.Image}}\t{{.Command}}\t{{.CreatedAt}}\t{{.Status}}'

CONTAINER ID        IMAGE               COMMAND             CREATED AT                      STATUS
61b9efa71024        busybox             "sh"                2017-01-04 13:23:33 -0800 PST   Exited (0) 44 seconds ago

El siguiente ejemplo elimina los contenedores creados antes de 2017-01-04T13:10:00:

$ docker ps -a --format 'table {{.ID}}\t{{.Image}}\t{{.Command}}\t{{.CreatedAt}}\t{{.Status}}'

CONTAINER ID        IMAGE               COMMAND             CREATED AT                      STATUS
53a9bc23a516        busybox             "sh"                2017-01-04 13:11:59 -0800 PST   Exited (0) 7 minutes ago
4a75091a6d61        busybox             "sh"                2017-01-04 13:09:53 -0800 PST   Exited (0) 9 minutes ago

$ docker container prune --force --filter "until=2017-01-04T13:10:00"

Deleted Containers:
4a75091a6d618526fcd8b33ccd6e5928ca2a64415466f768a6180004b0c72c6c

Total reclaimed space: 27 B

$ docker ps -a --format 'table {{.ID}}\t{{.Image}}\t{{.Command}}\t{{.CreatedAt}}\t{{.Status}}'

CONTAINER ID        IMAGE               COMMAND             CREATED AT                      STATUS
53a9bc23a516        busybox             "sh"                2017-01-04 13:11:59 -0800 PST   Exited (0) 9 minutes ago