Saltar al contenido

Introducción de Docker

Etiquetas:

Introducción

Vamos a comenzar una serie de artículos sobre Docker y el mundo de los contenedores. Intentaré explicar de una forma sencilla en qué consiste.

¿Qué es Docker?

Docker es una plataforma cuya función es la creación y gestión de contenedores ligeros.

Un contenedor es un conjunto de software que agrupa el código y todas sus dependencias para que una aplicación se ejecute de forma rápida y fiable en cualquier entorno. Se ejecutan sobre un sistema operativo y comparten funciones del kernel, pero cada uno corre como un proceso aislado. De esta forma, podemos ejecutar de forma simultánea incluso contenedores con distintas versiones de un mismo software como puede ser MySQL o Apache.

https://i1.wp.com/bonesoft.es/wp-content/uploads/2021/01/Diagrama-Docker.png?resize=500%2C291&ssl=1

Principales ventajas de usar Docker

Rapidez

Los contenedores incluyen los requisitos mínimos de software de una aplicación, lo que reduce su tamaño y permite que se implemente rápidamente.

Portabilidad

Una aplicación y todas sus dependencias se pueden agrupar en un único contenedor que sea independiente de la versión del kernel o distribución Linux. El contenedor se puede transferir a otro equipo que corra Docker y ejecutarse allí sin problemas de compatibilidad.

Fiabilidad

Puede realizar un seguimiento de las versiones sucesivas de un contenedor, inspeccionar las diferencias o revertir a versiones anteriores.

Ligereza

Las imágenes de Docker suelen ser muy pequeñas, lo que facilita la entrega rápida y reduce el tiempo de implementación de nuevos contenedores de aplicaciones.

Simplicidad

Docker reduce el esfuerzo y el riesgo de problemas con las dependencias de las aplicaciones.

Distribución

Puede utilizar un repositorio remoto para compartir el contenedor con otros usuarios. En el caso de Docker, el más famoso es Docker Hub

Escalabilidad

A través de un único comando podemos crear tantos contenedores de una aplicación como necesitemos. Esta funcionalidad se utiliza especialmente en entornos Clúster.

Conceptos básicos de Docker

Imagen

Es un paquete con todas la dependencias e información necesaria para crear un contenedor. Normalmente, una imagen se deriva de varias imágenes base que son capas que se apilan unas encima de otras para formar el sistema de archivos del contenedor. Una vez que se crea una imagen, esta es inmutable.

Dockerfile

Es un archivo de texto con instrucciones de cómo compilar una imagen.

Contenedor

Las imágenes se convierten en contenedores en tiempo de ejecución, es decir, un contenedor es una instancia de una imagen. De esta forma, el contenedor representa la ejecución de una sola aplicación, proceso o servicio.

Volúmenes

La imagen sobre la que corre un contenedor es de sólo lectura y el contendor es una instancia que no almacena datos de forma persistente. Los volúmenes agregan a los contenedores una capa grabable sobre un sistema de archivos. El sistema de archivos es accesible desde el Sistema Operativo y los administra Docker.

Etiqueta

Las etiquetas se aplican a las imágenes para que se puedan identificar diferentes versiones o entornos de una misma imagen.

Repositorio

Un repositorio es una colección de imágenes de Docker relacionadas y catalogadas mediante etiquetas.

Registro

Servicio que proporciona acceso a los repositorios. Pueden ser públicos o privados. El registro predeterminado para la mayoría de las imágenes públicas es Docker Hub

Compose

Herramienta de línea de comandos y formato de archivo YAML para facilitar la instalación de un entorno con varios contenedores interconectados. Primero se define una sola aplicación basada en varias imágenes con uno o más archivos .yml. Después de crear las definiciones, puede implementar toda la aplicación de varios contenedores con un solo comando.

Clúster

Colección de hosts de Docker que se expone como si fuera un solo host de virtual, de manera que la aplicación se puede escalar a varias instancias de los servicios repartidos entre varios hosts del clúster. La solución nativa de Docker se denomina Docker Swarm.