646 - Cinco herramientas para gestionar Docker
Gestionar #docker desde una interfaz o desde la terminal #linux? Cinco herramientas para gestionar docker #lazydocker #dive #dockly #dry #oxker
Como buen amante de la terminal que soy, todas, o casi todas, las operaciones que realizo son o bien directamente con Docker o utilizando docker compose
. Pero, sea como sea, siempre lo hago desde la terminal. Soy consciente de que hay diferentes herramientas gráficas para trabajar con Docker, como puede ser Portainer o Yacht. Sin embargo, me siento mas cerca de Docker trabajando desde la terminal. Es como si me diera mas control sobre lo que hago. Pero, como siempre, cada uno es libre de utilizar las herramientas que mas le gusten. En este episodio voy a hablar de algunas de las herramientas que puedes utilizar para trabajar con Docker desde la terminal pero desde otro punto de vista. Básicamente utilizando herramientas que te permiten ver de una manera mas gráfica lo que está pasando en tu contenedor.
Cinco herramientas para gestionar Docker
Interfaz gráfica o terminal
Si eres de los que prefieren una interfaz gráfica o de los que no gustan de la terminal, mi recomendación personal sería que te decantaras por Portainer o Yacht. Cualquiera de estas opciones te puede ayudar a gestionar todas las imágenes de una forma realmente sencilla.
Sin embargo, si eres de los que gustan vivir en la terminal, las herramientas que voy a comentar a continuación son realmente interesantes, porque te permitirán tener una visión mas de la situación de imágenes y contenedores. Digamos que se trata de una serie de herramientas que te proporcionan la facilidad y comodidad de una interfaz gráfica, y la inmediatez de la terminal.
LazyDocker
La primera de las herramientas de la que te quiero hablar es LazyDocker. A esta herramienta le dediqué un vídeo y su correspondiente artículo titulado LazyDocker o docker para perezosos. Esta es una herramienta gemela de otra similar llamada LazyGit, a la que también dediqué el correspondiente artículo Lazygit o git para perezosos.
LazyDocker es una herramienta que te permite ver de una manera gráfica lo que está pasando en tus contenedores. Te permite ver los contenedores que tienes en ejecución, los que tienes parados, las imágenes que tienes en tu sistema, los volúmenes, las redes, los logs, los eventos, etc. Todo ello de una manera gráfica.
Nada mas arrancar la aplicación verás cinco paneles donde te muestra los contenedores que tienes actualmente, las imágenes, los volúmnes, las redes y por último, en el panel mas grande de todos, el log del contenedor seleccionado.
Para moverte entre los cuatro paneles que se encuentran a la derecha lo puedes hacer, o bien con las teclas de cursor, o bien con el tabulador. Para acceder al panel de la derecha, lo tienes que hacer con la techa enter
y para desplazarte entre las distintas pestañas de ese panel, lo tienes que hacer con los corchetes.
Indicarte que con la tecla ?
tienes acceso a la ayuda, que la verdad es realmente práctica y
En cada uno de los paneles puedes pulsar x
lo que te mostrará un menú contextual con las opciones disponibles. Por ejemplo, en el caso de los contenedores, puedes parar, reiniciar, eliminar, etc. Y lo mismo puedes hacer para el caso de las imágenes, volúmenes, redes, etc.
Por otro lado al pulsar b
puedes ejecutar comandos masivos. Acciones que te permitirán realizar operaciones simultáneas sobre todos los elementos de un panel. Por ejemplo, puedes eliminar todas las imágenes, todos los volúmenes, etc.
Por otro lado, en el panel mas grande de los cinco, donde se muestran los logs cuando inicias la aplicación, ademas de ver los logs, puedes ver los eventos, los procesos, las estadísticas, etc.
Instalación
LazyDocker lo puedes instalar fácilmente ejecutando el siguiente comando,
curl https://raw.githubusercontent.com/jesseduffield/lazydocker/master/scripts/install_update_linux.sh | bash
En el caso de Arch, lo puedes hacer desde los repositorios AUR utilizando por ejemplo paru
,
paru -S lazydocker
Por supuesto, y como no podía ser de otra forma, también puedes tenerlo directamente en Docker y utilizar la imagen, lo que es una solución mas que interesante.
Dive
Si no construyes tus propias imágenes Docker, es posible que esta herramienta no le veas gran utilidad. Sin embargo, si estás en el caso de crear tus propias imágenes, seguro que encontrarás esta herramienta realmente útil e interesante. Dive es una herramienta que te permite explorar una imagen Docker, estudiar las capas y descubrir la forma de optimizar el tamaño de las imágenes.
Así, para analizar una imagen Docker simplemente tienes que ejecutar dive
seguido del nombre de la imagen que quieres analizar. Por ejemplo, dive ubuntu
.
En la parte izquierda encuentras las distintas capas que constituyen la imagen, mientras que en la parte derecha el contendio de cada un de las capas. Además en la parte izquierda tienes distintos detalles de la capa seleccionada, y los detalles de la imagen.
Para que te hagas una idea. Hace poco construí una imagen Docker con algunas utilidades que necesito para trabajar. La imagen pesaba 46 MB, y de acuerdo con los detalles proporcionados por Dive, tenía una eficiencia del 97%. Es decir, que solo el 3% de la imagen era redundante.
Instalación
Para instalar Dive en Ubuntu tienes que ejecuta las siguientes instrucciones,
DIVE_VERSION=$(curl -sL "https://api.github.com/repos/wagoodman/dive/releases/latest" | grep '"tag_name":' | sed -E 's/.*"v([^"]+)".*/\1/')
curl -OL https://github.com/wagoodman/dive/releases/download/v${DIVE_VERSION}/dive_${DIVE_VERSION}_linux_amd64.deb
sudo apt install ./dive_${DIVE_VERSION}_linux_amd64.deb
De nuevo, en el caso de Arch, puedes tirar de los repositorios AUR, y simplemente ejecutar el siguiente comando,
paru -S dive
Dockly
Esta es una herramienta muy similar a LazyDocker, aunque en este caso, Dockly está implementado en JavaScript, mientras que LazyDocker está implementado en Go.
La verdad que es una herramienta que te da una visión general de todo lo que está sucediendo en tu equipo a nivel de contenedores. Creo, y es una opinión personal, que tiene una interfaz mas atractiva que LazyDocker, pero en cuanto a funcionalidad, creo que están a la par.
Quizá la incomodidad, desde mi punto de vista, es que tienes que utilizar npm
o alternativas para su instalación, lo cual a mi no me termina de gustar.
Instalación
Como te decía para instalar Dockly necesitas de npm
o similares. Así que para instalar simplemente tienes que ejecutar el siguiente comando,
npm install -g dockly
Dry
Otra interesante herramienta es Dry, que es otra herramienta para gestionar Docker y Docker Swarm desde la terminal. Se trata de una herramienta que te proporcina información de contenedores, imágenes y redes. Pero si además estás utilizando un cluster Swarm te muestra información sobre nodos, servicios y el resto de elementos que componen un cluster Swarm. Puedes utilizar tanto de forma local como remota.
Además de mostrar información, te permite gestionar Docker. La mayoría de los comandos que puedes utilizar directamente con Docker, los puedes utilizar aquí en dry
con el mismo comportamiento. Dry es un único binario y está implementado en Go.
Instalación
Aquí solo encontré información para utilizarlo con Docker, para la mayoría de distribuciones Linux, simplemente tienes que ejecutar el siguiente comando,
docker run --rm -it -v /var/run/docker.sock:/var/run/docker.sock -e DOCKER_HOST=$DOCKER_HOST moncho/dry
Pero, en el caso particular de Arch, lo puedes instalar desde los repositorios AUR, simplemente ejecutando el siguiente comando,
paru -S dry-bin
Oxker
Y por supuesto, no quería dejarme Oxker. Mas que nada porque se trata de una alternativa a alguna de las herramientas de las que te he hablado, pero que en este caso está implementada en Rust.
Se trata de una herramienta, nuevamente, similar a LazyDocker, pero con una distribución ligeramente distinta. En particular, prefiero la organización de LazyDocker, pero probablemente sea porque estoy acostumbrado a la misma
Aquí, vas a encontrar seis paneles. En el panel superior verás un listado de todos los contenedores que actualmente hay en tu equipo, tanto los que están en funcionamiento como los parados. El siguiente panel, te muestra una serie de acciones que puedes realizar sobre el contenedor que tienes seleccionado. Acciones como la de pausar, reiniciar, parar o borrar. Todo depende del estado actual en el que se encuentre el contenedor, evidentemente.
En el panel centrar encontrarás los logs, nuevamente del contenedor seleccionado, y en la parte inferior puedes encontrar el consumo de CPU instantáneo como en forma de gráfica, lo mismo para el consumo de memoria, y por último un listado de los puertos que están abiertos en el contenedor.
Instalación
Puedes instalar Oxker simplemente ejecutando el siguiente comando,
curl https://raw.githubusercontent.com/mrjackwills/oxker/main/install.sh | bash
O, como de costumbre, en el caso de Arch, simplemente ejecuta el siguiente comando,
paru -S oxker
Conclusión
Después de probarlos todos me quedo con LazyDocker y Oxker. El primero porque creo que es el mas sencillo para la gestión de contenedores. O al menos es con el que mas acostumbrado estoy a trabajar, y el segundo para el caso de las gráfica. Aunque, como te decía, la organización de los paneles de LazyDocker me parece mas adecuada para mi forma de trabajar.
Más información,