¿Cuál es el mejor recurso gratuito para aprender Docker para principiantes?

Primero explicaré la necesidad de Docker y luego, cómo se puede usar.

¿Por qué necesitamos contenedores Docker?

Todavía lo recuerdo correctamente, estaba trabajando en un proyecto. En ese proyecto seguimos la arquitectura de microservicio. Para aquellos de ustedes que no saben qué es el microservicio, no se preocupen, les daré una introducción al mismo.

La idea detrás de los microservicios es que ciertos tipos de aplicaciones se vuelven más fáciles de construir y mantener cuando se dividen en piezas más pequeñas y compuestas que trabajan juntas. Cada componente se desarrolla por separado, y la aplicación es simplemente la suma de sus componentes constituyentes.

Considere el siguiente ejemplo:

En el diagrama anterior hay una tienda en línea con microservicios separados para cuentas de usuarios, catálogos de productos, procesamiento de pedidos y carritos de compras.

Bueno, esta arquitectura tiene muchos beneficios:

  • Incluso si uno de tus microservicios falla, tu aplicación completa no se verá afectada en gran medida.
  • Es más fácil de manejar

También hay muchos otros beneficios, no voy a entrar en muchos detalles acerca de los microservicios en esta publicación.

En esta arquitectura, estábamos usando máquinas virtuales CentOS. Esas máquinas virtuales se configuraron escribiendo scripts largos. Bueno, configurar esas máquinas virtuales no fue el único problema.

El desarrollo de tales aplicaciones requiere el inicio de varios microservicios en una máquina. Entonces, si está iniciando cinco de esos servicios, necesitará cinco máquinas virtuales en esa máquina. Considera el siguiente diagrama:

El otro problema es bastante común, sé que muchos de ustedes pueden relacionarse con él. La aplicación funciona en una computadora portátil de un desarrollador pero no en pruebas o producción. Esto puede deberse a no mantener un entorno informático coherente. Considera el siguiente diagrama:

Hubo muchos otros problemas aparte de esto también, pero creo que estos problemas son suficientes para que le explique la necesidad de los contenedores Docker.

Entonces, imagínese si le doy 8 GB de RAM a todas mis máquinas virtuales, y tengo 5 microservicios que se ejecutan en diferentes máquinas virtuales. En ese caso, estas máquinas virtuales requerirán 40 GB de RAM. Bueno, ahora necesito que las configuraciones de mi máquina host sean muy altas, casi 44 GB de RAM deben estar allí en mi máquina host. Obviamente, esta no es una solución sostenible para una arquitectura de este tipo porque, estoy desperdiciando muchos recursos aquí.

Bien, tengo muchos recursos para desperdiciar, pero todavía tengo un problema de inconsistencia en mi ciclo de vida de entrega de software (SDLC). Tengo que configurar estas máquinas virtuales tanto en prueba como en entorno de producción. En algún lugar de ese proceso, parte del software no se actualizó en el servidor de prueba y el equipo de desarrollo está utilizando la versión actualizada del software. Esto lleva a los conflictos.

¿Qué sucede si uso 100 máquinas virtuales? Entonces, la configuración de cada máquina virtual llevará mucho tiempo y, al mismo tiempo, también es propenso a errores.

Ahora, entendamos qué es Docker Container y cómo funciona, y cómo resolvió mi problema.

¿Qué es un contenedor Docker?

Docker es una herramienta diseñada para facilitar la creación, implementación y ejecución de aplicaciones mediante el uso de contenedores.

Puede crear Docker Containers, estos contenedores contendrán todos los archivos binarios y bibliotecas necesarios para su aplicación o microservicio en mi caso. Por lo tanto, su aplicación está presente en un contenedor, o usted ha contenedorizado su aplicación. Ahora, ese mismo contenedor se puede utilizar en el entorno Test y Prod.

Los contenedores Docker son una solución liviana para máquinas virtuales y utilizan el sistema operativo host. La mejor parte es que no tiene que asignar previamente ninguna RAM al contenedor Docker, lo tomará cuando sea necesario. Entonces, con Docker Container no tengo que preocuparme por el desperdicio de recursos.

Entendamos ahora, cómo funciona un contenedor Docker.

¿Cómo funciona un contenedor Docker?

El siguiente diagrama es básicamente, una forma de usar Docker. Y supongo que tienes una idea sobre Docker Image y Dockerfile.

Chicos, sé que el diagrama parece un poco complejo, pero créanme que no es tan complejo. A continuación se muestra la explicación del diagrama, incluso después de que sienta que es difícil de entender, puede comentar su duda, abordaré esas preguntas lo antes posible.

  • Un desarrollador primero escribirá el código del proyecto en un archivo Docker y luego construirá una imagen a partir de ese archivo.
  • Esta imagen contendrá el código completo del proyecto.
  • Ahora, puede ejecutar esta imagen de Docker para crear tantos contenedores como desee.
  • Esta imagen de Docker se puede cargar en el concentrador de Docker (es básicamente un repositorio en la nube para sus imágenes de Docker, puede mantenerla pública o privada).
  • Esta imagen de Docker en el centro de Docker puede ser extraída por otros equipos, como QA o Prod.

Esto no solo evita el desperdicio de recursos, sino que también garantiza que el entorno informático que existe en la computadora portátil de un Desarrollador también se replique en otros equipos. Ahora siento que no tengo que decirte por qué necesitamos a Docker.

Esta era una forma de usarlo, supongo que ustedes deben tener curiosidad por saber cómo usé Docker para resolver mi problema de microservicios. Déjame darte una visión general sobre el mismo.

A continuación se muestra la explicación del diagrama:

  • En primer lugar, escribimos los requisitos complejos dentro de un Dockerfile.
  • Luego, lo empujamos en GitHub.
  • Después de eso utilizamos un servidor CI (Jenkins).
  • Este servidor Jenkins lo bajará de Git y creará el entorno exacto. Esto se utilizará en los servidores de producción, así como en los servidores de prueba.
  • Lo implementamos en la preparación (se refiere a implementar su software en servidores con fines de prueba, antes de implementarlos completamente en los entornos de producción.) Para los evaluadores.
  • Básicamente, pusimos en marcha exactamente lo que teníamos en Desarrollo, Pruebas y Puesta en Escena en Producción.

En realidad, será justo decir eso, Docker me facilitó la vida.

Bueno, esa fue la historia de mi compañía, veamos el estudio de caso de la Universidad de Indiana. Cómo Docker resolvió sus problemas.

Estudio de caso de la Universidad de Indiana:

La Universidad de Indiana es un sistema universitario público de varios campus en el estado de Indiana, Estados Unidos.

Planteamiento del problema

Estaban usando scripts personalizados para implementar las aplicaciones en la máquina virtual.

Su entorno fue optimizado para sus aplicaciones heredadas basadas en Java. Su entorno de cultivo incluye nuevos productos que no están basados ​​únicamente en Java. Para dar a sus estudiantes la mejor experiencia posible, la Universidad necesitaba comenzar a modernizar las aplicaciones.

La Universidad quería mejorar la forma en que diseñan las aplicaciones, al pasar a una arquitectura basada en microservicios para sus aplicaciones.

Se necesitaba seguridad para los datos de los estudiantes, como los números de seguro social y los datos de salud de los estudiantes.

Solución:

Todos los problemas fueron resueltos por Docker Data Center (DDC), considere el diagrama a continuación:

Docker Trusted Registry – Almacena las imágenes Docker.

Interfaz de usuario web de UCP (plano de control universal) : ayuda a administrar todo el clúster desde un solo lugar. Los servicios se implementan utilizando la UI web de UCP, utilizando imágenes de Docker que se almacenan en DTR (Registro de confianza de Docker).

Los equipos de operaciones de TI aprovechan Universal Control Plane para aprovisionar el software instalado de Docker en los hosts y luego implementar sus aplicaciones sin tener que hacer un montón de pasos manuales para configurar toda su infraestructura.

UCP y DTR se integran con su servidor LDAP para proporcionar rápidamente el acceso a sus aplicaciones.

Consulte el video a continuación para obtener más información sobre Docker:

También te recomendaría que visites los siguientes blogs en Docker:

¿Qué es Docker?

Contenedor Docker

Related Content

Intente este curso para aprender docker dentro de un mes.

¿Apenas comenzando con Docker? Perfecto. Puedes tomar el siguiente curso para aprender docker. Este curso comienza asumiendo que eres nuevo en contenedores.

Course Link- Docker Mastery: el conjunto de herramientas completo de un capitán Docker

Cree, componga, implemente y administre contenedores Docker desde el desarrollo hasta los clústeres de enjambres basados ​​en DevOps

¿Que aprenderás?

  • Cómo utilizar Docker y Compose en su máquina para mejorar la creación y prueba de software.
  • ¡Construye un elegante clúster de múltiples nodos enjambres para implementaciones de producción!
  • Habilidades para crear entornos de desarrollo avanzados con su código ejecutándose en contenedores.
  • Actualice y cambie sus Servicios Swarm sin tiempo de inactividad utilizando actualizaciones sucesivas.
  • ¡Practica con las mejores prácticas para hacer archivos Docker y componer archivos como un profesional!
  • Experiencia en el registro de múltiples hosts y la supervisión de eventos para Docker Swarm.
  • Construye y publica tus propias imágenes personalizadas.
  • Comprenda los nuevos contenedores de Windows y pruebe su suerte en los contenedores ARM

Requerimientos

  • No requiere software de pago. ¡Simplemente instale su editor de texto y navegador favoritos!
  • Acceso de administrador local para instalar Docker para Mac / Windows / Linux.
  • Comprender los conceptos básicos de terminal o comando.
  • Conceptos básicos de Linux como shells, SSH y gestores de paquetes. (Consejos incluidos para ayudar a los recién llegados!)
  • Conozca los conceptos básicos de la creación de un servidor en la nube (en cualquier proveedor). (Consejos incluidos para ayudar a los recién llegados!)
  • Comprender los conceptos básicos de los servidores web y de base de datos. (Cómo se comunican típicamente, IP’s, puertos, etc.)
  • Tener una cuenta de GitHub y Docker Hub.

Descripción del curso-

Prepárese para el futuro de Dockerized , donde casi todo el software se desarrolla y se implementa en contenedores. Bienvenido al curso más completo y actualizado para aprender y utilizar Docker de principio a fin, desde el desarrollo y las pruebas, hasta el despliegue y la producción. Impartido por un capitán Docker y un consultor de DevOps.

¿Apenas comenzando con Docker? Perfecto. Este curso comienza asumiendo que eres nuevo en contenedores.

Algunas de las muchas cosas geniales que harás en este curso:

  • Edite el código web en su máquina mientras se sirve en un contenedor
  • Bloquee sus aplicaciones en redes privadas que solo exponen los puertos necesarios
  • Crea un clúster Swarm de 3 nodos en la nube
  • Use IP virtuales para el equilibrio de carga incorporado en su clúster
  • Optimice sus Dockerfiles para una construcción más rápida y pequeñas implementaciones
  • Construye / publica tus propias imágenes personalizadas basadas en los compromisos de GitHub
  • Crea tu propia imagen de registro.
  • Utilice Swarm Secrets para cifrar sus configuraciones de entorno, incluso en el disco
  • Implementar actualizaciones de contenedor en un diseño de actualización de actualización continua
  • Cree la utopía de configuración de un único archivo YAML para el desarrollo local, las pruebas de CI y las implementaciones de clústeres prod.
  • Y mucho más…

Después de tomar este curso, podrás:

  • Utilice Docker en sus funciones diarias de desarrollador y / o administrador de sistemas
  • Hacer archivos Docker y componer archivos
  • Cree clústeres de enjambre de múltiples nodos y despliegue de contenedores H / A
  • Cree un flujo de trabajo utilizando Docker en dev, luego pruebe / CI, luego produzca con yaml
  • Proteja sus claves, certificados TLS y contraseñas con secretos encriptados
  • Mantenga sus archivos e imágenes de Dock pequeños, eficientes y rápidos
  • Desarrollar localmente mientras su código se ejecuta en un contenedor
  • Protege los datos persistentes importantes en volúmenes y monta monta
  • ¡Dirige a tu equipo hacia el futuro con las últimas habilidades en contenedores de Docker!

Cosas extra que vienen con este curso:

  • Acceso al equipo de Slack del curso, para obtener ayuda / consejo de mí y de otros estudiantes.
  • Videos de bonificación que pongo en otros lugares como YouTube.
  • Toneladas de enlaces de referencia para complementar este contenido.
  • Las actualizaciones al contenido a medida que Docker cambia sus características en estos temas.

¿Quién es el público objetivo?

  • Desarrolladores de software, administradores de sistemas, profesionales de TI y operadores en cualquier nivel de habilidad.
  • Cualquiera que haga, implemente u opere software en servidores.

Si bien los documentos oficiales de Docker son realmente buenos, prefiero un enfoque de “aprender con el ejemplo”. Algunos recursos gratuitos que he encontrado útiles:

  • Servers for Hackers: tiene un montón de tutoriales en video gratuitos para aprender Docker, así como algunos cursos de pago.
  • docker / labs: este es el conjunto oficial de tutoriales de Docker. Buenos ejemplos sobre todo en Python.
  • Ebooks Series: The Docker and Container Ecosystem – The New Stack – No he leído todos estos libros, pero a primera vista se ven bastante bien y son gratis.
  • La Guía del desarrollador de PHP para Docker: escribí un libro gratuito de Docker / PHP y escribo publicaciones de blog semanales aquí.

Continuaré actualizando esta lista ya que siempre estoy buscando más recursos excelentes de Docker.

El mejor recurso para aprender Docker para principiantes es la guía oficial aquí: Documentación Docker

Su documentación es realmente sencilla incluso para los principiantes, así que no se sienta abrumado mirando la cantidad de páginas. Simplemente comience con la introducción y comprenderá todo, si tiene conocimientos básicos del servidor.

Si desea saber cómo puede implementar aplicaciones PHP en Docker, aquí hay un tutorial fácil de entender: Contenga sus aplicaciones PHP usando Docker

La documentación oficial de Docker es más que suficiente para cualquier persona que quiera comenzar. Desde una descripción básica de imágenes y contenedores, hasta la implementación de su aplicación en producción, todo se ha explicado de manera hermosa.

Simplemente vaya a la documentación de Docker

Lo más sencillo y lo mejor.

Puedes aprender desde abajo del sitio web

Descripción general de Docker

More Interesting