Si tiende a ser perezoso con Docker, dejando contenedores parados y volúmenes colgando, aquí tiene algunos consejos que le ayudarán a mantener limpio Docker.

    De vez en cuando tienes que limpiar lo tuyo y lo de Docker. Esto puede ser tan simple como retirar los contenedores o volúmenes no utilizados. De cualquier manera, usted necesita saber los comandos necesarios para que esto suceda. Esto es especialmente cierto cuando se ejecuta Docker en una máquina virtual, donde el espacio es un valor añadido.

    Las tareas de limpieza de Docker no son tan complicadas; se olvidan fácilmente. Pero cuando usted tiene contenedores colgando alrededor que no sirven para nada, necesita deshacerse de ellos (y de todos sus remanentes), para liberar espacio.

    Vamos a ocuparnos de eso.

    1. Extracción de contenedores

    Afrontémoslo, no todos los contenedores que usted crea siguen siendo utilizados. También es muy fácil olvidar que usted creó esos contenedores persistentes. Hay dos comandos que puede ejecutar para detener y eliminar todos los contenedores. Sin embargo, es posible que tenga contenedores en uso, por lo que no desearía hacer una mudanza al por mayor.

    Por lo tanto, para retirar los contenedores, primero debe averiguar qué contenedores tiene en su sistema. Para ello, ejecute el comando:

    docker ps -a

    El comando anterior listará los contenedores, tanto en ejecución como no, de su sistema (.

    Cualquier contenedor con un estado de Exited ya no se está ejecutando y puede ser borrado de forma segura (si no tiene planes de volver a arrancarlo. Para eliminar el contenedor que ha salido, ejecute el comando:

    docker rm CONTAINTER_ID

    Donde CONTAINER_ID son los primeros dígitos del ID real asociado al contenedor.

    Digamos, sin embargo, que usted tiene contenedores en funcionamiento que ya no utiliza. Para eliminarlos, primero debe detener el contenedor con el comando:

    parada de muelle CONTAINER_ID

    Donde CONTAINER_ID es el ID asociado al contenedor. Ahora puede borrar el contenedor de la misma manera que se ha descrito anteriormente.

    Otra forma de eliminar todos los contenedores detenidos (salidos) es con el comando:

    docker rm -v $(docker ps -a -q -f status=exited)

    2. Eliminar volúmenes de Docker

    Un volumen de datos Docker es un directorio especial, dentro de uno o más contenedores, que puede pasar por alto el controlador de almacenamiento de Docker y puede interactuar directamente con el sistema de archivos del host. Los volúmenes de datos sirven como datos persistentes o compartidos, entre contenedores, y se inicializan cuando se crea un contenedor. El problema es que cuando se borra un contenedor, el volumen puede permanecer.

    Para eliminar (lo que se llama) volúmenes colgantes, debe ejecutar el comando:

    docker volume rm $(docker volume ls -qf dangling=true)

    Verá una salida similar a la que se muestra en la .

    Por último, emita el siguiente comando para asegurarse de que la limpieza se ha completado:

    docker volume ls -qf colgando=true | xargs -r docker volume rm

    3. Usar una imagen base mínima

    La mayoría de las imágenes oficiales de Docker utilizan la última versión de Debian como base. En lugar de trabajar con una imagen más grande (como Ubuntu), siempre puede ahorrar espacio empezando por la imagen oficial de debian (como debian:jessie. Si la imagen de Debian sigue siendo demasiado grande, puede reducirla aún más empezando por la imagen BusyBox. Puede empezar a trabajar con BusyBox tirando de la imagen, iniciando el contenedor y accediendo a la shell de BusyBox con el comando:

    docker run -it --rm busybox

    Una vez dentro del contenedor BusyBox, comience a construir.

    4. Hacer uso de cron

    Supongamos que utiliza Docker con cierta regularidad y parece que nunca tiene tiempo para limpiar después de usted mismo. Si ese eres tú, siempre hay un cron listo. Vamos a crear un trabajo cron que hará un trabajo de limpieza diario y automatizado.

    Lo primero que hay que hacer es crear el guión para el trabajo. Vamos a llamar al script docker_clean.sh y lo guardaremos en ~//.

    Más información sobre redes

    El contenido del archivo será:

    #!/bin/bashdocker rmi $(docker images -q -f colgando=true)volumen del docker rm $(docker volume ls -qf colgando=true)

    Guarde y cierre el archivo. Para que esto funcione, debe tener los permisos adecuados. Emita el comando:

    chmod 755 ~/docker_clean.sh

    Para que esto tenga éxito, cualquier usuario que esté cronometrando el trabajo debe estar en el grupo Docker. Para añadir ese usuario, ejecute el comando:

    sudo usermod -aG docker USUARIO

    Donde USUARIO es el nombre de usuario real.

    Ese usuario tendrá que cerrar la sesión y volver a iniciar sesión. Ahora creamos el trabajo cron emitiendo el comando (como el usuario en cuestión):

    crontab -e

    En la parte inferior del archivo crontab, agregue lo siguiente:

    0 0 * * * 1 ~/docker_clean.sh > /dev/null 2>&1

    Guarde y cierre el archivo crontab. En este punto, cada medianoche se ejecutará la tarea de limpieza del Docker y siempre disfrutarás de una experiencia fresca y limpia.

    Sigue limpiando

    Docker le servirá bien. Si mantiene su servidor limpio, habrá menos posibilidades de que se quede sin espacio, un problema que es especialmente importante cuando Docker se ejecuta como una máquina virtual. Mantenga limpio el Docker y disfrutará de una experiencia mucho mejorada.

    Boletín de noticias de Data Center Trends

    DevOps, virtualización, la nube híbrida, el almacenamiento y la eficiencia operativa son sólo algunos de los temas del centro de datos que destacaremos. Entregado Lunes y Miércoles