Curso de Docker online, gratis y completo para principiantes

Curso de Docker online gratis y completo para principiantes
Inicio » Informática » Varios » Curso de Docker online, gratis y completo para principiantes

Tabla de contenido

¿De qué trata este curso de Docker?

Como su propio nombre indica es un curso de Docker completo, lo que significa que empezaremos desde lo más básico que es la teoría para tener unas buenas bases y luego continuaremos con la práctica, conceptos y ejemplos más avanzados.

Una vez que lo termines serás capaz de dominar completamente Docker y añadirlo a tu currículum sin miedo, pues serás capaz de afrontar cualquier tarea o proyecto que lo incluya con total seguridad.

Así mismo es un curso completamente gratis y online, no existe ninguna sección ni ejercicio de pago, todo el contenido está a tu entera disposición para que lo consultes cuando quieras y desde donde quieras.

Finalmente me gustaría comentar que en este curso no mezclaremos otros conceptos que se suelen encontrar junto con Docker como, por ejemplo, Kubernetes. Creo que es contraproducente para el aprendizaje y, como dice el refrán español, quien mucho abarca poco aprieta.

¿Por qué debo elegir este curso?

De manera similar a otro tipo de contenido que podrás encontrar en esta web, este curso en realidad son mis apuntes personales redactados un poco mejor de lo que lo haría si fuesen solo para mí.

Con ello te quiero decir que, al igual que tú, antes de comenzar con estos apuntes de Docker yo tampoco tenía mucha idea sobre el tema y he conseguido dominarlo completamente desde cero con ejemplos prácticos y reales.

A continuación te enumeraré algunos motivos por los que debes elegir este curso de Docker:

  • Curso online en su totalidad.
  • Totalmente gratis, sin engaños ni apartados de pago, toda la información está a tu disposición para que la consultes cuando quieras.
  • Teoría incluida en el primer tema, ya se que es un poco aburrido, pero es necesario tener determinados conceptos claros antes de pasar a la práctica.
  • Ejemplos reales y prácticos,  utilizaremos un proyecto de ejemplo .NET con tres módulos, una APP con .NET MVC, un API hecha con .NET y una base de datos para la persistencia de la información.
  • Comienzo desde cero para principiantes. No es necesario que tengas conocimientos previos de Docker, aunque sí es recomendado que tengas conocimientos superfluos sobre la terminal de Linux y algo de arquitectura de software.
  • Duración adecuada, no es un curso excesivamente largo como, por ejemplo, el curso que vimos de SEO. Solo tenemos cinco temas y, si contamos esta introducción y el post de resumen sobre comandos y ficheros, siete temas.

Contenido e índice del curso de Docker

Finalmente vamos a ver los temas del curso de Docker y un pequeño resumen de cada uno de ellos.

Teoría de Docker con los conceptos más importantes

Entre otros, algunos de los conceptos que veremos en la teoría de Docker a lo largo del curso son:

  • Qué es Docker y cuáles son sus ventajas. Veremos que es un sistema de virtualización para desplegar y ejecutar aplicaciones con múltiples ventajas.
  • Diferencias entre imágenes, contenedores y máquinas virtuales.
  • Qué son los conjuntos de contenedores y qué podemos definir y configurar dentro de éstos.
  • Diferencias entre los ficheros Dockerfile vs docker-compose.yml.
  • Cómo instalar y probar Docker en tu ordenador local, indispensable para hacer pruebas y realizar las prácticas.
  • Resumen del ejemplo práctico real que vamos a utilizar a lo largo de los tutoriales.

Docker en la práctica a través de comandos para imágenes y contenedores

Después comenzaremos con la práctica, en concreto este capítulo del curso se centra en la práctica de Docker a través de comandos:

  • Comandos para descargar y gestionar imágenes. Aunque no entraremos aún en cómo crear imágenes personalizadas, si veremos cómo descargar y eliminar imágenes y veremos qué son las etiquetas y por qué son tan importantes.
  • Comandos para administrar contenedores. Algunos de los apartados incluidos en este punto son la creación, eliminación y ejecución de contenedores.
  • Qué son los puertos en los contenedores y cómo establecerlos a la hora de ejecutarlos.
  • Variables de configuración, modo interactivo y logs para depurar errores.
  • Volúmenes y almacenamiento persistente en Docker, veremos que por defecto el almacenamiento de un contenedor es volátil y que este problema podemos solventarlo con volúmenes.
  • Qué es y para qué sirve el comando run. Este comando es un tanto especial ya que en realidad es un conjunto de comandos vistos anteriormente.

Obviamente todos estos puntos los veremos de forma práctica configurando y ejecutando un contenedor de SQL Server.

Tutorial de Dockerfile en la práctica para crear imágenes

Los comandos anteriores nos servirán para comprender cómo funciona la maquinaria interna de Docker, sin embargo, los comandos no se suelen utilizar mucho, lo que realmente se utilizan son ficheros.

El primer fichero que veremos en el curso es Dockerfile que sirve para crear imágenes personalizadas que después desplegaremos en contenedores:

  • Estructura básica del fichero Dockerfile y líneas más importantes. Entre otras cosas veremos qué son y para qué sirven FROM, WORKDIR, COPY, RUN, ARG, ENV, EXPOSE, USER y CMD.
  • Ejemplo básico y práctico de Dockerfile, donde crearemos un pequeño contenedor con un servidor web y una página en HTML. Configuraremos y comprobaremos que dicha web es accesible desde nuestro ordenador.
  • Seguridad y usuarios, veremos cómo mejorar la seguridad de los contenedores a través de la creación y utilización de usuarios concretos en vez de root.
  • Qué es y para qué sirve .dockerignore, a través de un ejemplo práctico veremos qué utilidad tiene este fichero a la hora de optimizar imágenes y contenedores.
  • Ejemplo práctico y real de Dockerfile, en este punto comenzaremos a trabajar en nuestro proyecto de ejemplo donde meteremos en contenedores un proyecto completo de .NET con su APP, API y base de datos.
  • Cómo optimizar imágenes y contenedores, veremos que existen varias formas para reducir el tiempo de creación de imágenes y el tamaño de los contenedores.
  • Cómo funciona la cache y capas de Docker, mi parte favorita del curso, es aquí donde empezamos a ver conceptos un poco más avanzados que te permitirán conocer el funcionamiento interno de Docker y aprovecharlo para optimizar, de nuevo, los tiempos y tamaños de imágenes y contenedores.
  • Qué son los Dockerfile multi-stage con un ejemplo práctico, de nuevo, otro concepto avanzado que explicaremos y veremos a través de un ejemplo real utilizando como referencia nuestro proyecto de .NET.

Tutorial de docker-compose.yml práctico para ejecutar contenedores

El segundo fichero que veremos es docker-compose.yml para configurar el despliegue y ejecución de un conjunto de contenedores:

  • Para qué sirve el fichero docker-compose.yml, explicaremos de manera teórica qué nos aporta este fichero a la hora de ejecutar y desplegar múltiples imágenes y contenedores.
  • Ejemplo real y práctico de docker-compose.yml. Configuraremos una parte de nuestro proyecto de .NET a través de este fichero y después los deplegaremos a través de los comandos docker compose.
  • Diferencia entre services build vs services image, en esta parte configuraremos el contenedor de base de datos que, como veremos, utiliza services image para descargar la imagen en vez de services build para crearla a partir del fichero Dockerfile.
  • Creación de volúmenes para el almacenamiento persistente, en el caso de la base de datos será necesario indicar a través del fichero docker-compose.yml que tenemos un volumen y mapear para conseguir la persistencia de datos.
  • Redes, puertos y variables de configuración en docker-compose.yml. Veremos algunos conceptos en la práctica que nos permitirán definir una buena arquitectura para nuestro conjunto de contenedores.
  • Dependencias y healthchecks en Docker, como último paso veremos cómo orquestar el inicio de los contenedores a través de las líneas “depends_on” y “healthcheck” de manera práctica.

Despliegue de aplicaciones en la nube y publicación de imágenes

Como último paso en el curso práctico de Docker veremos cómo desplegar aplicaciones y publicar imágenes para que los usuarios puedan acceder a nuestra aplicación y los desarrolladores puedan descargar nuestras imágenes:

  • Cómo publicar imágenes en Docker Hub, veremos que, al igual que ocurre con Git y Github, existen plataformas para subir imágenes y compartirlas con otros usuarios.
  • Compartir imágenes de forma privada, si no quieres utilizar una plataforma externa en la nube también existen alternativas para publicar imágenes de forma privada.
  • Formas y servicios para desplegar aplicaciones Docker, analizaremos las distintas alternativas que tenemos para publicar nuestras aplicaciones en la nube.
  • Despliegue de docker-compose.yml en Azure AppServices, a través de un ejemplo real conseguiremos tener publicada nuestra aplicación completa en Azure a través de dos métodos distintos.
  • Despliegue de docker-compose.yml en máquina virtual de Azure, repetiremos el despliegue anterior pero esta vez utilizando una máquina virtual hospedada en Azure.

Resumen del curso con los comandos y líneas más importantes

Este tema en realidad es un recopilatorio y resumen de todos los capítulos vistos a lo largo del curso que podrás utilizar cuando estés trabajando como cheat sheet con los comandos y líneas Docker más importantes:

  • Comandos de imágenes.
  • Comandos para contenedores.
  • Líneas del fichero Dockerfile.
  • Comandos y líneas del fichero docker-compose.yml.
  • Otros comandos útiles de Docker.