12 interesantes ideas de proyectos Docker para principiantes [2022]

Publicado: 2021-01-07

Hoy en día, las aplicaciones ya no se desarrollan ni implementan de la forma en que se solían hacer antes de DevOps. Desde que DevOps se convirtió en algo común en la industria de TI y software, ha cambiado radicalmente la infraestructura operativa. Ahora, los desarrolladores y operadores trabajan juntos para crear, probar e implementar aplicaciones de manera rápida y eficiente. Ahí es precisamente donde encaja Docker en la imagen.

Docker es un software de creación de contenedores, o más precisamente, una herramienta PaaS que le permite fragmentar aplicaciones y sus entornos en fragmentos más pequeños que se pueden almacenar e implementar en cualquier entorno y máquina sin problemas. Con la creación de contenedores, varios contenedores (incluidas las aplicaciones, sus archivos de sistema y el entorno) funcionan sin problemas en una máquina virtual sin siquiera compartir todos los recursos.

Como resultado, puede ejecutar múltiples aplicaciones en la misma máquina virtual, donde cada aplicación funcionará como si tuviera su sistema operativo, CPU, memoria, almacenamiento y otros recursos cruciales.

El ecosistema Docker comprende cuatro proyectos principales, a saber, Moby, Kubernetes y Containerd. Sin embargo, eso no es todo: hay mucho más en Docker que estos tres proyectos. Todos los días, la comunidad de Docker trabaja activamente en el desarrollo de los mejores proyectos y herramientas con y para Docker para que los desarrolladores de todo el mundo puedan crear e implementar aplicaciones que puedan ejecutarse en cualquier lugar. Si desea aprender DevOps, Docker es una sección importante para aprender.

Aprenda a crear aplicaciones como Swiggy, Quora, IMDB y más

En esta publicación, destacaremos algunos de los mejores proyectos de Docker que todo aspirante a desarrollador debería conocer.

Tabla de contenido

Las mejores ideas de proyectos de Docker

1. RancherVM

Cualquiera que use Docker probablemente sepa qué es Rancher. Es un proveedor de contenedores como servicio que incluye una gran cantidad de algunos de los marcos de programación y orquestación de contenedores más utilizados: Docker Swarm , Kubernetes y Mesos . RancherVM es uno de los proyectos menos conocidos de Rancher que le permite ejecutar una VM dentro de un contenedor Docker. Está equipado con una interfaz de usuario web para administrar claves públicas, nodos de cómputo, máquinas virtuales y para acceder a consolas VNC desde un navegador web.

Con RancherVM, puede crear máquinas virtuales que se ejecutan dentro de los pods de Kubernetes, también conocidos como VM Pods. Cada pod de VM incluye un contenedor que ejecuta una instancia de máquina virtual. Actualmente, RancherVM solo admite imágenes KVM. Por lo tanto, puede empaquetar cualquier imagen de KVM como una imagen de Docker, distribuirla mediante cualquier registro de Docker (por ejemplo, DockerHub) y ejecutarla en RancherVM.

Además, RancherVM amplía la API de Kubernetes con definiciones de recursos personalizadas (CRD). Puede definir una especificación CRD de VirtualMachine especificando qué imagen base, cuántos recursos informáticos y qué pares de claves están autorizados para iniciar una sesión SSH. Luego, un controlador de Kubernetes creará pods de VM de acuerdo con las especificaciones proporcionadas por usted y mostrará lo mismo en el estado CRD de VirtualMachine.

Saber más: Los 10 proyectos DevOps más emocionantes para principiantes [2020]

2. Embarcadero

En noviembre de 2015, Microsoft lanzó Dockercraft a la vista del público. Fue lanzado como código abierto en GitHub, diseñado explícitamente para permitir a los desarrolladores administrar sus contenedores Docker en Minecraft , ¡un popular juego que Microsoft compró por US$ 2.500 millones !

Según GitHub , Dockercraft es un “cliente simple de Minecraft Docker, para visualizar y administrar contenedores Docker” en el entorno 3D de Minecraft. No es exactamente un administrador Docker complicado implementado en Minecraft, sino más bien una forma simple de visualizar y activar interruptores en contenedores Docker.

Es importante recordar que debe tener la versión completa de Minecraft en su PC para usar Dockercraft. Si ya lo tienes, puedes descargar Dockercraft desde Github . Una vez que haya completado la configuración, debe ejecutar un contenedor Dockercraft y unirse a un servidor de Minecraft personalizado: Cuberite.

3. vino

El mayor inconveniente de Docker es que las aplicaciones dockerizadas no son multiplataforma, lo que significa que no puede ejecutar de forma nativa una aplicación Docker de Windows en Linux. Para solucionar este problema, se creó Wine . Wine on Docker se desarrolló para permitir que las aplicaciones de Windows se ejecuten en el sistema operativo Linux de la misma manera que se ejecutaría una aplicación local desde cualquier parte del mundo. En Docker, se conoce como Wine, mientras que en GitHub lo llamamos Docker-Wine.

Wine usa la capa de compatibilidad de Wine para admitir aplicaciones de Windows en Linux. Dado que Wine viene con controladores Dynamic Video y VirtualGL con soporte local y remoto, debería funcionar bien con tarjetas Nvidia y controladores Nvidia listos para usar e incluso con otras tarjetas que usan controladores Mesa. Puede configurar Wine para que se adapte automáticamente a cualquier controlador que haya instalado, siempre que sean los más recientes para su sucursal.

4. DockerMon

En la actualidad, solo hay un puñado de servicios de monitoreo para las imágenes de Docker, por ejemplo, Shipyard . Y es un hecho bien establecido que a los desarrolladores/programadores les encantan las herramientas que les permiten acceder a todos los requisitos esenciales dentro del shell. Docker-Mon es una de esas herramientas de monitoreo de consola Docker. Docker-mon se basa en sacred-contrib , un marco de tablero centrado en shell.

Este proyecto aún es un trabajo en progreso y se basa en la función de estadísticas de la ventana acoplable que aún no se ha lanzado. Entonces, para usar Docker-Mon, necesitará una compilación maestra o la próxima v1.5.0 (puede verificar el lanzamiento de v1.5.0-rc1 aquí ).

5. Pasajero-estibador

Todos sabemos que Phusion Passenger es uno de los favoritos de los desarrolladores de Rails. El objetivo principal de este servidor de aplicaciones es crear un entorno adecuado en el que los desarrolladores puedan ejecutar sus aplicaciones sin problemas. Esta idea es lo que provocó la creación del proyecto Passenger-Docker. El objetivo era desarrollar una imagen base predeterminada sensible para los desarrolladores que deseen implementar Docker en su entorno de producción.

Passenger-Docker es un conjunto de imágenes de Docker diseñado para servir como base para imágenes de aplicaciones web de Ruby, Python, Node.js y Meteor. Manteniendo el mantra central de Phusion Passenger, el proyecto Passenger-Docker busca simplificar y acelerar el proceso de creación de imágenes de Docker para aplicaciones web.

6. KubeVirt

KubeVirt es un complemento de gestión de máquinas virtuales para Kubernetes. Fue desarrollado para ofrecer un terreno común para crear soluciones de virtualización sobre Kubernetes. Esencialmente, Kubernetes se creó para administrar contenedores y no otros tipos de infraestructura. Sin embargo, puede usar Kubernetes para orquestar clústeres de VM. Esto es lo que hace KubeVirt: agrega funcionalidades adicionales a Kubernetes para que pueda admitir máquinas virtuales sin problemas.

KubeVirt tiene como objetivo ampliar las funcionalidades de Kubernetes mediante la incorporación de tipos de recursos de virtualización adicionales a través de la API de definiciones de recursos personalizados de Kubernetes . Puede usar KubeVirt para crear una VM predefinida, iniciar una VM, detener una VM, eliminar una VM y también programar una VM en un clúster de Kubernetes. Sin embargo, KubeVirt todavía es un trabajo en progreso.

Leer más: Redes de Kubernetes: una guía completa para comprender el modelo de red

7. expediente

Docket es un registro de Docker personalizado que facilita implementaciones ultrarrápidas a través de BitTorrent. Le permite implementar imágenes de Docker en un gran grupo de máquinas a una velocidad impresionante. ¡Docket fue diseñado y desarrollado en 48 horas en el hackatón de 48 horas de Gopher Gala Golang! Escrito en Golang, Docket es fácil de usar y puede funcionar bien con su registro Docker privado.

Docket se compone de tres componentes principales:

  • Docket Registry: Es un servicio REST que funciona como un registro. Puede recibir tarballs de imágenes de Docker del cliente, almacenar metadatos en una base de datos y crear torrents a partir de ellos, así como sembrarlos.
  • Docket Client: Es la interfaz con la que interactúa el usuario final. Le permite ver las imágenes disponibles en el registro, insertar una imagen en el registro y extraer una imagen del registro (esto desencadena una implementación de BitTorrent).
  • Rastreador de BitTorrent: aunque Docket tiene la función BYOT (traiga su rastreador), le recomendamos que instale OpenTracker para rastrear BitTorrent.

8. Herramienta de migración de contenedores (CMT)

Lo bueno de los contenedores de Docker es que son portátiles, ya que pueden ejecutarse en cualquier tipo de host que tenga Docker instalado. Sin embargo, Docker carece de la función integrada que le permite mover contenedores en ejecución de un clúster a otro a través de una red. Para agregar al desafío, Checkpoint & Restore (CR) sigue siendo una característica relativamente nueva que no está disponible de forma genérica para los usuarios de contenedores. CR exige un nivel de comprensión sobre su funcionalidad y, por lo general, la mayoría de los usuarios que no están bien versados ​​en la funcionalidad de CR obtienen errores al realizar CR debido a las diferencias/limitaciones entre el host de origen y el de destino.

Container Migration Tool o CMT se desarrolló específicamente para combatir este problema de migración. La idea detrás de la creación de CMT fue crear una herramienta de línea de comandos externa que se pueda usar con Docker o runC que facilite la migración en vivo de contenedores entre diferentes hosts mediante la realización de validaciones previas a la migración y el descubrimiento automático de hosts de destino adecuados.

9. dockerfile_lint

Los linters son un componente crucial en el desarrollo de una cadena de herramientas desde el frente. Son ampliamente utilizados por los desarrolladores de JavaScript y son particularmente útiles cuando varios desarrolladores trabajan en una base de código compartida. dockerfile_lint es un linter basado en reglas para Dockerfiles .

Puede usar las reglas dockerfile_lint para verificar la sintaxis del archivo, la semántica arbitraria y los atributos de mejores prácticas que determina el autor del archivo de reglas. Además, puede usar el linter para verificar las reglas de LABEL con las imágenes de Docker. Los archivos de reglas están escritos en YAML . Todas las reglas se implementan mediante expresiones regulares y pueden ejecutarse en una instrucción del Dockerfile a la vez. El archivo de reglas consta de cuatro secciones:

  • Sección de perfil: proporciona la información necesaria sobre el archivo de reglas que ayuda al usuario a seleccionar un archivo de reglas apropiado para un Dockerfile específico.
  • Sección General: Contiene reglas generales de sintaxis.
  • Sección de regla de línea: contiene reglas que deben ejecutarse en una instrucción dada en el Dockerfile. Hay reglas para verificar la sintaxis de cada instrucción.
  • Sección de instrucciones requeridas: Contiene una lista de instrucciones que deben existir en el Dockerfile para que se pueda considerar válido.

10. Dockermix

Dockermix es una herramienta de línea de comandos que se utiliza para desarrollar y administrar entornos Docker de varios contenedores. En este proyecto, los conjuntos de contenedores se definen en el formato YAML que emula las opciones disponibles en la API de Docker. El objetivo detrás de la creación de Dockermix era permitir a los desarrolladores lanzar, orquestar e implementar sin esfuerzo entornos complejos de múltiples nodos para pruebas y desarrollo.

El proyecto Dockermix ahora ha sido renombrado como Maestro con su desarrollo bajo la organización Toscanini. Para acceder al código fuente actual, puede consultar el proyecto Maestro .

11. Libro de cocina de Docker

Docker Cookbook incluye todos los recursos necesarios para instalar Docker y crear, administrar y ejecutar contenedores Docker. Este proyecto de Docker solo está asociado con el motor de contenedor de Docker que distribuye Docker, Inc., y no aborda las herramientas del ecosistema de Docker ni otras tecnologías como Cgroups o AUFS.

Para usar Docker Cookbook, debe tener Chef v12.15 o posterior instalado en su máquina. The Cookbook ofrece soporte para múltiples plataformas, incluidas Amazon Linux, Fedora, CentOS 7, Debian 8/9 y Ubuntu 14.04/16.04. Además, puede configurar automáticamente los repositorios de paquetes de Docker aguas arriba.

12. Dokku

Dokku es un mini-Heroku con tecnología Docker, la implementación de PaaS más pequeña que se haya desarrollado jamás. Esta solución PaaS permite a los usuarios configurar e implementar aplicaciones en un entorno de producción en un servidor independiente. Utiliza Docker para ayudar a los desarrolladores a crear y administrar el ciclo de vida completo de las aplicaciones.

Puede instalar Dokku en cualquier máquina e incluso usarlo en proveedores de nube económicos. Además, puede escribir complementos de Dokku en cualquier idioma, compartirlos en línea y ampliar los complementos ya disponibles.

Aprenda cursos de desarrollo de software en línea de las mejores universidades del mundo. Obtenga programas Executive PG, programas de certificados avanzados o programas de maestría para acelerar su carrera.

Terminando

Estos son solo algunos de los muchos, muchos proyectos que se han desarrollado con Docker como base. Aunque no necesita todas estas herramientas de Docker para su próximo proyecto, es bueno saber que tiene una multitud de opciones.

Si está interesado en obtener más información sobre big data, consulte el programa Executive PG de upGrad & IIIT-B en desarrollo de software de pila completa, que está diseñado para profesionales que trabajan y ofrece más de 500 horas de capacitación rigurosa, más de 9 proyectos y asignaciones, IIIT -Estado de exalumno B, proyectos finales prácticos prácticos y asistencia laboral con las mejores empresas.

Prepárate para una carrera del futuro

Solicite ahora el programa Executive PG en Full Stack Development