12 herramientas de código abierto que hacen que Docker sea mejor

Parpadea y es posible que te pierdas algunos de los desarrollos más interesantes de Docker en estos días. Es posible que Kubernetes esté recibiendo más del trueno de las nuevas herramientas, pero Docker continúa ofreciendo una orquestación de contenedores "suficiente" para la mayoría de los proyectos de desarrollo e implementaciones.

Además, Docker tiene su propio ecosistema rico de herramientas de terceros que amplían Docker, lo mejoran o lo hacen menos exigente. Aquí hay 12 creaciones de código abierto que reciben un impulso de Docker o le dan un impulso a Docker, aprovechando Docker para casos de uso específicos o haciendo que Docker sea más fácil de trabajar.

Bucear

Las imágenes de Docker son como sándwiches, con muchas capas. Tal vez sea mejor decir que son como sándwiches en envoltorios opacos: no siempre se sabe cuántas capas hay ni qué contienen. Dive le permite explorar visualmente las capas en una imagen de Docker a través de una interfaz de usuario interactiva. Puede ver qué ingredientes están presentes en cada capa y también determinar cómo cada capa ha cambiado la capa debajo de ella (qué se ha agregado o eliminado). También puede analizar una imagen en busca de espacio desperdiciado o duplicado, e incluso pasar los resultados a su canal de integración continua, de modo que una imagen con demasiado espacio desperdiciado falle el proceso de construcción.

Interfaz de usuario de Docker Compose

La interfaz de usuario de Docker Compose es un proyecto con licencia del MIT que proporciona a Docker Compose una interfaz de usuario basada en la web, que se crea utilizando el marco de trabajo Flask de Python. Los contenedores se pueden ejecutar localmente o en un host remoto, y la interfaz de usuario de Docker Compose está disponible en un contenedor de Docker para mayor comodidad. Tenga en cuenta que algunos de los proyectos de demostración proporcionados con la interfaz de usuario de Docker Compose no se pueden escalar "debido a conflictos de puertos publicados".

Dockly

La mayor parte del trabajo de Docker se realiza a través de una CLI o una interfaz de terminal, y la CLI de Docker predeterminada se parece mucho a cualquier otro programa de la CLI. Dockly proporciona una interfaz de terminal de pantalla completa para Docker: un panel en modo texto de todos los contenedores en ejecución, una vista en vivo de los registros de contenedores y las estadísticas de utilización, y una pestaña de shell incorporada. 

Polvoriento

Dusty, un entorno de desarrollo con licencia del MIT y potenciado por Docker, está destinado a mejorar el uso de Docker Compose o Vagrant para la gestión de contenedores. Los desarrolladores detrás de Dusty afirman, por ejemplo, que Dusty tiene un modelo de especificaciones más simple que Docker Compose, y que maneja el aislamiento basado en versiones de las dependencias de aplicaciones y las actualizaciones de servicios mejor que Vagrant. Dusty también permite crear pruebas como parte de una especificación para un entorno y hace posible que los procedimientos comunes de varios pasos se conviertan en un script de fácil invocación.

Elsy

Elsy se describe como "una herramienta de compilación obstinada y en varios idiomas" que utiliza Docker y Docker Compose. Elsy permite que un repositorio de software se construya de manera consistente en todos los entornos y mantiene las herramientas necesarias para realizar la compilación al mínimo, sin importar el idioma que se use. Una característica promocionada  blackbox-test, permite que cualquier contenedor construido se pruebe de una manera que refleje su uso de producción real. Por ejemplo, cualquier servicio que necesite una base de datos tendrá un contenedor de base de datos configurado para ello, y Elsy destruirá automáticamente el entorno de prueba después.

Gockerize

Aquí hay uno para los fanáticos del idioma Go. Gockerize es una herramienta con licencia BSD para crear binarios Go estáticos y empaquetarlos en contenedores Go mínimos. Creado por la gente detrás de AeroFS, Gockerize incluye características como “la capacidad de aplicar automáticamente un conjunto de parches a la biblioteca estándar de Golang; algo que, aunque rara vez se necesita, puede salvar la vida ”, según la publicación del blog que presenta el proyecto. Gockerize no depende de muchas cosas externas, solo Go, Docker 1.5 o superior y el shell Bash.

Habitus

Habitus, otra herramienta de compilación basada en Docker, utiliza un archivo Dockerfile y un archivo build.yml para crear compilaciones de contenedores de varios pasos que contienen cualquier número de comandos arbitrarios. Se puede hacer que cada paso de la compilación se base en algún paso anterior, para garantizar que las dependencias complicadas de varios pasos funcionen correctamente. Habitus también admite la inclusión de secretos en un proceso de construcción y lo hace sin dejar rastros en la imagen.

Hiper

Considerada como una "herramienta independiente del hipervisor que le permite ejecutar imágenes de Docker en cualquier hipervisor", Hyper utiliza Docker, QEMU y Xen para lograr sus objetivos. Los creadores de la herramienta afirman que Hyper utiliza recursos mínimos (28 MB), arranca a la velocidad de un contenedor en lugar de una máquina virtual, ofrece un alto rendimiento y proporciona aislamiento de aplicaciones mediante hardware. Un caso de uso propuesto para Hyper es crear aplicaciones multiinquilino basadas en Docker.

Kitematic

A veces solo quieres una GUI. Kitematic le ofrece una GUI para administrar contenedores Docker en MacOS, Ubuntu Linux y Windows. Las comodidades adicionales de Kitematic incluyen exponer automáticamente los datos del volumen del contenedor a través del sistema de archivos, proporcionar una CLI incorporada a Docker y sincronizar automáticamente su estado para que coincida con los cambios en Docker (por ejemplo, cuando agrega nuevas imágenes de contenedor).

Logspout

El mundo Unix tiene una larga tradición de combinar pequeños programas para resolver grandes problemas. Logspout aplica la misma filosofía a la gestión de registros desde contenedores Docker. Logspout canaliza todos los registros ( stdout y  stderr, principalmente) de todos los contenedores en un host determinado al destino que considere mejor. Los registros agregados resultantes se pueden ver en tiempo real simplemente leyendo un flujo HTTP.

Portainer

Incluso una pila de Docker relativamente simple puede tener muchas partes móviles: contenedores, imágenes, redes, volúmenes, secretos. Hacer un seguimiento de todo eso en tu cabeza no es una solución. Portainer proporciona una interfaz de usuario web para entornos Docker, ya sean hosts únicos o clústeres, lo que proporciona una vista de panel único de todo lo que está ejecutando. La administración y la descripción general de todos los componentes comunes de Docker están a solo un par de clics de distancia. Lo mejor de todo es que todo se implementa en su infraestructura Docker existente como un solo contenedor.

Whalebrew

Los usuarios de MacOS deben estar familiarizados con Homebrew, el sistema de administración de paquetes ad hoc para MacOS. Whalebrew le permite instalar imágenes de Docker y ejecutarlas directamente desde la línea de comandos mediante un alias, como si fueran ejecutables instalados localmente. Instalar paquetes es tan fácil como escribir whalebrew install . Los paquetes seleccionados a través del repositorio de Whalebrew funcionan mejor, pero teóricamente cualquier imagen de Docker que tome comandos CLI debería funcionar.