Androide

Cómo eliminar contenedores, imágenes, volúmenes y redes de docker

Contenedores vs Imágenes en Docker

Contenedores vs Imágenes en Docker

Tabla de contenido:

Anonim

Docker le permite construir, probar e implementar rápidamente aplicaciones como contenedores portátiles y autosuficientes que pueden ejecutarse prácticamente en cualquier lugar.

Docker no elimina objetos no utilizados, como contenedores, imágenes, volúmenes y redes, a menos que se lo indique explícitamente. A medida que trabaja con Docker, puede acumular fácilmente una gran cantidad de objetos no utilizados que consumen mucho espacio en disco y saturan la salida producida por los comandos de Docker.

Esta guía sirve como una "hoja de trucos" para ayudar a los usuarios de Docker a mantener su sistema organizado y a liberar espacio en disco al eliminar los contenedores, imágenes, volúmenes y redes de Docker no utilizados.

Eliminar todos los objetos no utilizados

El comando de docker system prune eliminará todos los contenedores detenidos, todas las imágenes colgantes y todas las redes no utilizadas:

docker system prune

Se le pedirá que continúe, use el indicador -f o --force para omitir la solicitud.

WARNING! This will remove: - all stopped containers - all networks not used by at least one container - all dangling images - all build cache Are you sure you want to continue?

docker system prune --volumes

WARNING! This will remove: - all stopped containers - all networks not used by at least one container - all volumes not used by at least one container - all dangling images - all build cache Are you sure you want to continue? y

Retirar los contenedores Docker

Los contenedores Docker no se eliminan automáticamente cuando los detiene a menos que inicie el contenedor con el indicador --rm .

Retire uno o más contenedores

Para eliminar una o más imágenes de Docker, use el comando docker container rm seguido de la ID de los contenedores que desea eliminar.

Puede obtener una lista de todos los contenedores pasando el indicador -a al comando docker container ls :

docker container ls -a

La salida debería verse así:

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES cc3f2ff51cab centos "/bin/bash" 2 months ago Created competent_nightingale cd20b396a061 solita/ubuntu-systemd "/bin/bash -c 'exec …" 2 months ago Exited (137) 2 months ago systemd fb62432cf3c1 ubuntu "/bin/bash" 3 months ago Exited (130) 3 months ago jolly_mirzakhani

Una vez que conozca el CONTAINER ID de los contenedores que desea eliminar, páselo al comando docker container rm . Por ejemplo, para eliminar los dos primeros contenedores enumerados en la salida anterior, ejecute:

docker container rm cc3f2ff51cab cd20b396a061

Error response from daemon: You cannot remove a running container fc983ebf4771d42a8bd0029df061cb74dc12cb174530b2036987575b83442b47. Stop the container before attempting removal or force remove.

Retire todos los contenedores detenidos

Antes de ejecutar el comando de eliminación, puede obtener una lista de todos los contenedores que no se están ejecutando (detenidos) que se eliminarán con el siguiente comando:

docker container ls -a --filter status=exited --filter status=created

Para eliminar todos los contenedores detenidos, utilice el comando de docker container prune :

docker container prune

Se le pedirá que continúe, use el indicador -f o --force para omitir la solicitud.

WARNING! This will remove all stopped containers. Are you sure you want to continue? y

Retire los contenedores con filtros

El comando docker container prune permite eliminar contenedores según la condición utilizando el indicador de filtrado --filter .

Al momento de escribir este artículo, los filtros actualmente admitidos son until y label . Puede usar más de un filtro mediante el uso de varios indicadores de --filter .

Por ejemplo, para eliminar todas las imágenes que se crearon hace más de 12 horas, ejecute:

docker container prune --filter "until=12h"

Pare y retire todos los contenedores

Puede obtener una lista de todos los contenedores Docker en su sistema utilizando el docker container ls -aq .

Para detener todos los contenedores en ejecución, use el comando docker container stop seguido de una lista de todas las ID de contenedores.

docker container stop $(docker container ls -aq)

Una vez que se detienen todos los contenedores, puede eliminarlos con el comando docker container rm seguido de la lista de ID de contenedores.

docker container rm $(docker container ls -aq)

Eliminar imágenes de Docker

Eliminar una o más imágenes

Para eliminar una o más imágenes de Docker, use el comando docker images ls para encontrar la ID de las imágenes que desea eliminar.

docker image ls

La salida debería verse así:

REPOSITORY TAG IMAGE ID CREATED SIZE centos latest 75835a67d134 7 days ago 200MB ubuntu latest 2a4cca5ac898 2 months ago 111MB linuxize/fedora latest a45d6dca3361 3 months ago 311MB java 8-jre e44d62cf8862 3 months ago 311MB

Una vez que haya localizado las imágenes que desea eliminar, pase su IMAGE ID al comando docker image rm . Por ejemplo, para eliminar las dos primeras imágenes enumeradas en la salida anterior, ejecute:

docker image rm 75835a67d134 2a4cca5ac898

Error response from daemon: conflict: unable to remove repository reference "centos" (must force) - container cd20b396a061 is using its referenced image 75835a67d134

Eliminar imágenes colgantes

Docker proporciona un comando de docker image prune Docker que se puede usar para eliminar imágenes colgadas y sin usar.

Una imagen colgante es una imagen que no está etiquetada y que ningún contenedor utiliza. Para eliminar imágenes colgantes, escriba:

docker image prune

Se le pedirá que continúe, use el indicador -f o --force para omitir la solicitud.

WARNING! This will remove all dangling images. Are you sure you want to continue? y Al eliminar imágenes colgantes, si las imágenes creadas por usted no están etiquetadas, también se eliminarán.

Eliminar todas las imágenes no utilizadas

Para eliminar todas las imágenes a las que no hace referencia ningún contenedor existente, no solo las que cuelgan, use el comando prune con el indicador -a :

docker image prune -a

WARNING! This will remove all images without at least one container associated to them. Are you sure you want to continue? y

Eliminar imágenes usando filtros

Con el comando docker image prune , también puede eliminar imágenes en función de una determinada condición utilizando el indicador de filtrado --filter .

Al momento de escribir este artículo, los filtros actualmente admitidos son until y label . Puede usar más de un filtro mediante el uso de varios indicadores de --filter .

Por ejemplo, para eliminar todas las imágenes que se crearon hace más de 12 horas, debería ejecutar:

docker image prune -a --filter "until=12h"

Eliminar volúmenes de Docker

Eliminar uno o más volúmenes

Para eliminar uno o más volúmenes de Docker, use el comando docker volume ls para encontrar la ID de los volúmenes que desea eliminar.

docker volume ls

La salida debería verse así:

DRIVER VOLUME NAME local 4e12af8913af888ba67243dec78419bf18adddc3c7a4b2345754b6db64293163 local terano

Una vez que haya encontrado el VOLUME NAME de los volúmenes que desea eliminar, docker volume rm comando docker volume rm . Por ejemplo, para eliminar el primer volumen listado en la salida anterior, ejecute:

docker volume rm 4e12af8913af888ba67243dec78419bf18adddc3c7a4b2345754b6db64293163

Error response from daemon: remove 4e12af8913af888ba67243dec78419bf18adddc3c7a4b2345754b6db64293163: volume is in use -

Eliminar todos los volúmenes no utilizados

Para eliminar todos los volúmenes no utilizados, use el comando docker image prune :

docker volume prune

Se le pedirá que continúe, use el indicador -f o --force para omitir la solicitud.

WARNING! This will remove all local volumes not used by at least one container. Are you sure you want to continue?

Eliminar redes de Docker

Eliminar una o más redes

Para eliminar una o más redes Docker, use el comando docker network ls para encontrar la ID de las redes que desea eliminar.

docker network ls

La salida debería verse así:

NETWORK ID NAME DRIVER SCOPE 107b8ac977e3 bridge bridge local ab998267377d host host local c520032c3d31 my-bridge-network bridge local 9bc81b63f740 none null local

Una vez que haya localizado las redes que desea eliminar, pase su NETWORK ID al comando docker network rm . Por ejemplo, para eliminar la red con el nombre my-bridge-network run:

docker network rm c520032c3d31

Error response from daemon: network my-bridge-network id 6f5293268bb91ad2498b38b0bca970083af87237784017be24ea208d2233c5aa has active endpoints

Eliminar toda la red no utilizada

Use el comando docker network prune para eliminar todas las redes no utilizadas.

docker network prune

Se le pedirá que continúe, use el indicador -f o --force para omitir la solicitud.

WARNING! This will remove all networks not used by at least one container. Are you sure you want to continue?

Eliminar redes utilizando filtros

Con el comando docker network prune puede eliminar redes según la condición utilizando el indicador de filtrado --filter .

Al momento de escribir este artículo, los filtros actualmente admitidos son until y label . Puede usar más de un filtro mediante el uso de varios indicadores de --filter .

Por ejemplo, para eliminar todas las redes que se crearon hace más de 12 horas, ejecute:

docker network prune -a --filter "until=12h"

Conclusión

En esta guía, le mostramos algunos de los comandos comunes para eliminar contenedores, imágenes, volúmenes y redes de Docker.

También debe consultar la documentación oficial de Docker.

estibador