Una hoja de trucos Docker
Una hoja de trucos Docker
Introducción
Docker hace que sea fácil envolver sus aplicaciones y servicios en contenedores para que pueda ejecutarlos en cualquier lugar. Sin embargo, mientras trabaja con Docker, también es fácil acumular una cantidad excesiva de imágenes, contenedores y volúmenes de datos no utilizados que saturan la salida y consumen espacio en el disco.
Docker le brinda todas las herramientas que necesita para limpiar su sistema desde la línea de comandos. Esta guía de estilo de hoja de trucos proporciona una referencia rápida a los comandos que son útiles para liberar espacio en disco y mantener su sistema organizado mediante la eliminación de imágenes, contenedores y volúmenes de Docker no utilizados.
Como usar esta guia:
- Esta guía está en formato de hoja de trucos con fragmentos de línea de comando autocontenidos.
- Salte a cualquier sección que sea relevante para la tarea que está tratando de completar.
La sintaxis de sustitución de comandos, utilizada en los comandos está disponible en muchos shells populares como bash, zsh y Windows Powershell.
command $(command)
Purgar todas las imágenes, contenedores, volúmenes y redes no utilizadas o que cuelgan
Docker proporciona un solo comando que limpiará todos los recursos (imágenes, contenedores, volúmenes y redes) que están colgando (no asociados con un contenedor):
- docker system prune
Para eliminar adicionalmente los contenedores detenidos y todas las imágenes no utilizadas (no solo imágenes colgantes), agregue la
-a
bandera al comando:
- docker system prune -a
Eliminar imágenes de Docker
Eliminar una o más imágenes específicas.
Utilice el
docker images
comando con la -a
bandera para localizar el ID de las imágenes que desea eliminar. Esto le mostrará cada imagen, incluidas las capas de imagen intermedias. Cuando haya localizado las imágenes que desea eliminar, puede pasar su ID o etiqueta a docker rmi
:
Lista:
- docker images -a
Retirar:
- docker rmi Image Image
Quitar imagenes colgantes
Las imágenes de Docker consisten en múltiples capas. Las imágenes colgantes son capas que no tienen relación con ninguna imagen etiquetada. Ya no sirven un propósito y consumen espacio en disco. Se pueden ubicar agregando el indicador de filtro,
-f
con un valor de dangling=true
al docker images
comando. Cuando esté seguro de que desea eliminarlos, puede usar el docker images purge
comando:
Nota: Si crea una imagen sin etiquetarla, la imagen aparecerá en la lista de imágenes colgantes porque no tiene asociación con una imagen etiquetada. Puede evitar esta situación al proporcionar una etiqueta cuando construye, y puede etiquetar de forma retroactiva las imágenes con el comando de etiqueta acoplable .
Lista:
- docker images -f dangling=true
Retirar:
- docker images purge
Eliminar imágenes según un patrón
Puedes encontrar todas las imágenes que coincidan con un patrón utilizando una combinación de
docker images
y grep
. Una vez que esté satisfecho, puede eliminarlos utilizando awk
para pasar los ID a docker rmi
. Tenga en cuenta que Docker no suministra estas utilidades y no están necesariamente disponibles en todos los sistemas:
Lista:
- docker images -a | grep "pattern"
Retirar:
- docker images -a | grep "pattern" | awk '{print $3}' | xargs docker rmi
Eliminar todas las imagenes
Todas las imágenes de Docker en un sistema se pueden enumerar agregando
-a
al docker images
comando. Una vez que esté seguro de que desea eliminarlos todos, puede agregar la -q
marca para pasar la ID de imagen a docker rmi
:
Lista:
- docker images -a
Retirar:
- docker rmi $(docker images -a -q)
Eliminación de contenedores
Retirar uno o más contenedores específicos.
Use el
docker ps
comando con la -a
bandera para ubicar el nombre o ID de los contenedores que desea eliminar:
Lista:
- docker ps -a
Retirar:
- docker rm ID_or_Name ID_or_Name
Retirar un contenedor a la salida.
Si sabe que cuando esté creando un contenedor no querrá mantenerlo cerca una vez que haya terminado, puede ejecutar
docker run --rm
para eliminarlo automáticamente cuando sale.
Ejecutar y eliminar:
- docker run --rm image_name
Retire todos los contenedores salidos
Puede localizar los contenedores utilizando
docker ps -a
y filtrarlos por su estado: creado, reiniciando, ejecutando, pausado o salido. Para revisar la lista de contenedores salidos, use la -f
bandera para filtrar según el estado. Cuando haya verificado que desea eliminar esos contenedores, utilice -q
para pasar las ID al docker rm
comando.
Lista:
- docker ps -a -f status=exited
Retirar:
- docker rm $(docker ps -a -f status=exited -q)
Retire los recipientes utilizando más de un filtro
Los filtros Docker se pueden combinar repitiendo el indicador de filtro con un valor adicional. Esto da como resultado una lista de contenedores que cumplen con cualquiera de las condiciones. Por ejemplo, si desea eliminar todos los contenedores marcados como Creados (un estado que puede aparecer cuando ejecuta un contenedor con un comando no válido) o Salido , puede usar dos filtros:
Lista:
- docker ps -a -f status=exited -f status=created
Retirar:
- docker rm $(docker ps -a -f status=exited -f status=created -q)
Retirar los recipientes según un patrón.
Puedes encontrar todos los contenedores que coincidan con un patrón usando una combinación de
docker ps
y grep . Cuando esté satisfecho de tener la lista que desea eliminar, puede usar awk
y xargs
proporcionar la ID docker rmi
. Tenga en cuenta que Docker no suministra estas utilidades y no está necesariamente disponible en todos los sistemas:
Lista:
- docker ps -a | grep "pattern”
Retirar:
- docker ps -a | grep "pattern" | awk '{print $3}' | xargs docker rmi
Detener y retirar todos los contenedores.
Puede revisar los contenedores en su sistema con
docker ps
. Añadiendo la -a
bandera se mostrarán todos los contenedores. Cuando esté seguro de que desea eliminarlos, puede agregar el -q
indicador para proporcionar las ID a los comandos docker stop
y docker rm
:
Lista:
- docker ps -a
Retirar:
- docker stop $(docker ps -a -q)
- docker rm $(docker ps -a -q)
Eliminando Volúmenes
Eliminar uno o más volúmenes específicos: Docker 1.9 y versiones posteriores
Utilice el
docker volume ls
comando para localizar el nombre del volumen o los nombres que desea eliminar. Luego puedes eliminar uno o más volúmenes con el docker volume rm
comando:
Lista:
- docker volume ls
Retirar:
- docker volume rm volume_name volume_name
Eliminar volúmenes colgando - Docker 1.9 y posteriores
Dado que el punto de los volúmenes debe existir independientemente de los contenedores, cuando se elimina un contenedor, un volumen no se elimina automáticamente al mismo tiempo. Cuando un volumen existe y ya no está conectado a ningún contenedor, se denomina volumen colgante. Para ubicarlos y confirmar que desea eliminarlos, puede usar el
docker volume ls
comando con un filtro para limitar los resultados a volúmenes colgantes. Cuando esté satisfecho con la lista, puede eliminarlos todos con docker volume prune
:
Lista:
- docker volume ls -f dangling=true
Retirar:
- docker volume prune
Retirar un recipiente y su volumen.
Si creó un volumen sin nombre, se puede eliminar al mismo tiempo que el contenedor con la
-v
bandera. Tenga en cuenta que esto solo funciona con volúmenes sin nombre . Cuando el contenedor se elimina con éxito, se muestra su ID. Tenga en cuenta que no se hace referencia a la eliminación del volumen. Si no tiene nombre, se elimina silenciosamente del sistema. Si es nombrado, permanece en silencio presente.
Retirar:
- docker rm -v container_name
Conclusión
Esta guía cubre algunos de los comandos comunes utilizados para eliminar imágenes, contenedores y volúmenes con Docker. Hay muchas otras combinaciones y banderas que pueden usarse con cada una. Para una guía completa de lo que está disponible, consulte la documentación del estibador de
docker system prune
, docker rmi
, docker rm
y docker volume rm
. Si hay tareas comunes de limpieza que le gustaría ver en la guía, pregunte o haga sugerencias en los comentarios.
0 comentarios:
Publicar un comentario