Chuck's Academy

Docker

Introducción a Docker y la Contenerización

La contenerización ha transformado la manera en la que desarrollamos, desplegamos y gestionamos aplicaciones en diferentes entornos. Docker es una plataforma que permite empaquetar una aplicación y sus dependencias en un contenedor, lo cual facilita su transporte y ejecución en cualquier máquina que soporte Docker, sin necesidad de ajustes adicionales.

Docker HubDocker Hub

¿Qué es Docker?

Docker es una plataforma de código abierto que simplifica la creación, implementación y ejecución de aplicaciones mediante el uso de contenedores. Un contenedor es una unidad estándar de software que agrupa código y todas sus dependencias para que una aplicación se ejecute de manera rápida y confiable en diferentes entornos.

La razón principal por la que Docker ha ganado tanta popularidad es porque permite garantizar que la aplicación se ejecutará de la misma forma, sin importar si está en la máquina del desarrollador, en un servidor de pruebas o en producción.

¿Por qué usar Docker?

Docker ofrece varios beneficios importantes que lo convierten en una herramienta clave para desarrolladores y administradores de sistemas:

  • Consistencia en todos los entornos: Al empaquetar una aplicación con sus dependencias en un contenedor, Docker garantiza que la aplicación se ejecutará de la misma forma en cualquier entorno.
  • Aislamiento: Cada contenedor es aislado del sistema y de otros contenedores, lo que permite tener diferentes aplicaciones y versiones de software ejecutándose en el mismo host sin conflictos.
  • Escalabilidad y eficiencia: Docker permite iniciar múltiples instancias de una aplicación, haciendo fácil escalar en función de la demanda.

Principios Básicos de Docker

Para entender cómo funciona Docker, es importante conocer algunos conceptos fundamentales.

Imágenes de Docker

Una imagen de Docker es una plantilla inmutable que incluye todos los elementos necesarios para ejecutar una aplicación, como el sistema operativo, el código, las librerías y las dependencias. Las imágenes se construyen a partir de un archivo llamado Dockerfile que define las instrucciones para crear el entorno de la aplicación.

dockerfile
"Aquí, el Dockerfile comienza con la línea FROM node:14, que especifica la versión de Node.js base. Luego, define el directorio de trabajo con WORKDIR /app y copia los archivos del proyecto con COPY punto espacio punto. Finalmente, instala las dependencias con RUN npm install y establece el comando principal CMD para ejecutar la aplicación en Node."

Las imágenes pueden ser compartidas a través de registros de Docker como Docker Hub, lo que permite que otros usuarios descarguen y usen estas imágenes.

Contenedores

Un contenedor es una instancia en ejecución de una imagen. Mientras que una imagen es el "molde", el contenedor es la aplicación en sí en ejecución. Los contenedores pueden crearse, iniciarse, detenerse y destruirse sin afectar la imagen de base.

bash
"Este comando ejecuta la imagen llamada my-app en un contenedor en segundo plano, gracias al flag d. Mapea el puerto tres mil de la máquina local al puerto tres mil del contenedor usando el parámetro p tres mil dos puntos tres mil."

Docker Hub

Docker Hub es un repositorio público que permite almacenar y compartir imágenes de Docker. Las imágenes pueden ser descargadas directamente desde Docker Hub y utilizadas como base para construir nuestras propias aplicaciones.

bash
"Este comando descarga la última versión de la imagen de Ubuntu desde Docker Hub. La opción latest indica que queremos la versión más reciente disponible de esta imagen."

Esta imagen muestra Docker HubEsta imagen muestra Docker Hub

Arquitectura de Docker

Docker utiliza una arquitectura cliente-servidor, donde el cliente se comunica con el demonio de Docker para construir, ejecutar y gestionar contenedores. Esta arquitectura permite que Docker sea extremadamente versátil y eficiente en la gestión de aplicaciones contenerizadas.

Docker CLI

La interfaz de línea de comandos de Docker (CLI) es la herramienta principal para interactuar con Docker. Con la CLI, podemos ejecutar comandos para crear, ejecutar y gestionar contenedores.

Algunos comandos básicos de Docker incluyen:

bash
"Estos comandos de Docker nos permiten construir imágenes, ejecutar contenedores, detener y eliminar contenedores, ver las imágenes disponibles y listar los contenedores en ejecución."

Conclusión

Docker facilita enormemente el desarrollo y despliegue de aplicaciones al permitir que se ejecuten en contenedores portátiles y aislados. La capacidad de empaquetar una aplicación junto con todas sus dependencias en un contenedor asegura que se ejecute de manera consistente en cualquier entorno, desde desarrollo hasta producción.


Pregúntame lo que sea