Eliminar contenedores de forma permanente en Docker
Por lo general, Docker no elimina los contenedores detenidos, sino que solo los elimina. Este proceso ocurre para evitar la eliminación accidental de contenedores detenidos.
Este artículo tratará la eliminación adecuada de contenedores no utilizados y sin etiquetar para recuperar recursos en Docker.
Eliminar contenedores de forma permanente en Docker
En Docker, tenemos el comando de eliminación que eliminará a la fuerza una imagen específica. Este comando es docker rmi -f <image_id>
para imágenes y docker rm <container_id>
para contenedores.
Sin embargo, en papel, el comando no eliminará la imagen del contenedor, sino que solo la eliminará de forma suave al quitar la etiqueta del objeto.
Si revisamos nuestras imágenes detenidas usando el comando docker image ls -a
, podemos verificar que el comando anterior solo quitará la etiqueta de nuestras imágenes en lugar de eliminarlas.
Salida de ejemplo:
Untagged: my_image:latest
Las siguientes secciones analizarán varios scripts y parámetros para ayudarnos a eliminar de forma permanente los contenedores docker.
Eliminar contenedores en Docker
Cuando trabajamos con Docker, podemos acumular rápidamente muchos objetos no utilizados que consumen una cantidad significativa de espacio en disco y saturan la salida producida por los comandos de Docker. Desafortunadamente, Docker no elimina los objetos sin etiquetar y sin usar, como contenedores, imágenes, volúmenes y redes, a menos que nos indique explícitamente que lo hagamos.
Podemos recuperar rápidamente los recursos con la poda de contenedores eliminando los contenedores en estado detenido. Por ejemplo, podemos usar el siguiente comando.
Código de ejemplo:
docker system prune -a
La bandera -a
eliminará todas las imágenes no utilizadas. Después de ejecutarse, nos indicará el siguiente mensaje.
Podemos omitir este mensaje agregando el comando anterior con el indicador de fuerza -f
.
WARNING! This command will remove the following:
- all containers with the stopped status
- all network paths not used by at least one (1) container
- all images without at least one (1) container associated with them
- all cache
Are you sure you want to continue? [y/N]
Además, los comandos anteriores no eliminarán los volúmenes no utilizados adjuntos a contenedores Docker anteriores no utilizados. Sin embargo, podemos agregar y usar el parámetro --volumes
para incluir la eliminación de volúmenes no utilizados.
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedInArtículo relacionado - Docker Container
- Comprobar si el contenedor Docker se está ejecutando o no
- Ejecute contenedores de forma continua en segundo plano con Docker
- Ingrese un contenedor Docker en ejecución con un nuevo pseudo TTY
- La diferencia entre el contenedor de Docker y la imagen de Docker
- Listar solo los contenedores detenidos en Docker