GNU/Linux >> Tutoriales Linux >  >> Panels >> Docker

Qué es un contenedor Docker:una guía introductoria para principiantes

¿Quiere saber qué es un contenedor Docker? Descubra todo lo que necesita saber en este artículo con un lenguaje fácil de entender.

La popularidad de Docker no es sin razón. Ha cambiado enormemente la forma en que los desarrolladores abordan el desarrollo de aplicaciones.

Se ha convertido en un estándar en la industria de TI para empaquetar, implementar y ejecutar aplicaciones distribuidas con facilidad.

La principal ventaja de Docker es que permite a los usuarios empaquetar una aplicación con todas sus dependencias en una unidad estandarizada denominada contenedor.

Dado que Docker es una plataforma de contenedorización, debe comprender la historia detrás de la contenedorización.

La historia antes de la contenedorización

Antes de que entrara en escena la creación de contenedores, la mejor manera de aislar y organizar las aplicaciones y sus dependencias era colocar cada aplicación en su máquina virtual.

Estas máquinas ejecutan varias aplicaciones en el mismo hardware físico y este proceso no es más que  virtualización. .

Pero la virtualización tenía algunos inconvenientes, como que las máquinas virtuales tenían un tamaño voluminoso. Además, ejecutar varias máquinas virtuales genera un rendimiento inestable.

El proceso de arranque suele llevar mucho tiempo y las máquinas virtuales no resuelven problemas como la portabilidad, las actualizaciones de software o la integración continua y la entrega continua.

Estos inconvenientes llevaron al surgimiento de una nueva técnica llamada containerización. .

La contenedorización es un tipo de virtualización que lleva la virtualización al nivel del sistema operativo.

Mientras que la virtualización aporta abstracción al hardware, la contenedorización aporta abstracción al sistema operativo.

Contenedores vs. Máquinas virtuales

Los términos "Contenedores" y "Máquinas virtuales" a menudo se usan indistintamente; sin embargo, esto a menudo se malinterpreta.

Sin embargo, ambos son solo métodos diferentes para proporcionar la virtualización del sistema operativo.

Máquinas virtuales

Máquinas virtuales generalmente incluyen un sistema operativo completo, paquetes y, si es necesario, algunas aplicaciones.

Un hipervisor lo hace posible, lo que proporciona virtualización de hardware a la máquina virtual.

Esto permite que un solo servidor ejecute muchos sistemas operativos independientes como invitados virtuales. En términos generales, una máquina virtual es un sistema que actúa exactamente como una computadora.

Contenedores

Contenedores son similares a las máquinas virtuales, excepto que los contenedores no son sistemas operativos completos. Los contenedores generalmente solo incluyen los paquetes y aplicaciones del sistema operativo necesarios.

Por lo general, no contienen un sistema operativo completo o virtualización de hardware; estos son "ligeros".

Un contenedor generalmente se usa para aislar un proceso en ejecución dentro de un solo host para garantizar que los procesos aislados no puedan interactuar con otros procesos dentro de ese mismo sistema:los procesos de sandbox de contenedores entre sí.

En pocas palabras, puede pensar en un contenedor Docker como un equivalente ligero de una máquina virtual.

Docker permite crear y trabajar con contenedores de la manera más eficiente posible.

Razones para usar contenedores Docker

  • Los contenedores no tienen sistema operativo invitado y utilizan el sistema operativo del host. Por lo tanto, comparten bibliotecas y recursos relevantes cuando sea necesario.
  • Aislamiento de aplicaciones:si desea ejecutar varias aplicaciones en un servidor, mantener los componentes de cada aplicación en contenedores separados evitará problemas con la administración de dependencias.
  • El procesamiento y la ejecución de las aplicaciones son muy rápidos, ya que los archivos binarios específicos de las aplicaciones y las bibliotecas de contenedores se ejecutan en el kernel del host.
  • Arrancar un contenedor toma solo una fracción de segundo.
  • Los contenedores son livianos y más rápidos que las máquinas virtuales.

¿Qué es un contenedor Docker?

Docker es una plataforma que empaqueta una aplicación y todas sus dependencias en forma de contenedores.

Utiliza contenedores para facilitar la creación, implementación y ejecución de aplicaciones. Docker vincula la aplicación y sus dependencias dentro de un contenedor.

Los contenedores permiten a un desarrollador empaquetar una aplicación con todas las partes que necesita, como bibliotecas y otras dependencias, y enviarlo todo como un solo paquete.

Digamos que necesita construir una aplicación. Para que esa aplicación esté disponible para el público, necesita un lugar para alojarla. En el pasado, necesitaba construir su computadora.

Luego, deberá configurar un servicio web dedicado llamado "servidor", una computadora dedicada a alojar sitios web o servicios web.

Sin embargo, es posible que su aplicación solo tenga un tamaño aproximado de 300 Megabytes para empezar.

Entonces, ¿por qué querría una "máquina virtual", un entorno virtualizado resultante de la virtualización, que tiene un tamaño de más de 1 GB cuando su aplicación es mucho menor que eso?

El concepto de "contenedor" viene a arreglar eso. Docker lo hace de la siguiente manera. En lugar de alojar cada sistema operativo por aplicación, se pueden compartir algunos recursos comunes y existe algo llamado "motor acoplable", que se ubica sobre un sistema operativo.

La adopción de Docker, o contenedor, es que las aplicaciones se pueden implementar o cancelar con mayor rapidez. Comience y deténgase más rápido, cambie a otra "imagen" más rápido, procese y haga muchas cosas más rápido.

Pero sería útil que conociera los elementos y las herramientas esenciales del ecosistema de Docker al comenzar.

Dockerfile

Un Dockerfile es un conjunto de instrucciones precisas que indican cómo crear una nueva imagen de Docker:establecer los valores predeterminados para los contenedores que se ejecutan en función de ella y un poco más.

Es un documento de texto que contiene todos los comandos que un usuario puede llamar en la línea de comando para ensamblar una imagen.

Entonces, Docker puede crear imágenes automáticamente leyendo las instrucciones de un Dockerfile.

Imagen acoplable

Docker Image se puede comparar con una plantilla de solo lectura utilizada para crear contenedores Docker. En otras palabras, una imagen es un modelo a partir del cual se puede iniciar una cantidad arbitraria de contenedores nuevos.

No se guardan "comandos actualmente en ejecución" en una imagen. Cuando crea un contenedor, es como encender una máquina después de apagarla.

Contenedor Docker

Es una instancia en ejecución de una imagen de Docker, ya que contiene todo el paquete necesario para ejecutar la aplicación.

Imagine que le gustaría ejecutar un comando aislado de todo lo demás en el sistema. Solo debe acceder con precisión a los recursos que tiene permitido y no sabe que hay nada más en la máquina.

El proceso que se ejecuta dentro de un contenedor cree que es el único que ve una distribución básica de Linux como se describe en la imagen.

Una máquina que ejecuta el contenedor no debería preocuparse demasiado por lo que hay dentro, y a la aplicación dockerizada no le importa si está en un clúster de Kubernetes o en un solo servidor; podrá ejecutarse de todos modos.

Un contenedor puede ejecutar más de un solo proceso a la vez. Entonces, por ejemplo, podría empaquetar muchos servicios en un solo contenedor y ejecutarlos uno al lado del otro.

Cuando se elimina un contenedor de Docker, al reiniciar la imagen se iniciará el contenedor de nuevo sin ninguno de los cambios realizados en el contenedor en ejecución anterior; esos cambios se perderán.

Volumen acoplable

Las imágenes no cambian. Puedes crear otros nuevos, pero eso es todo. Los contenedores, por otro lado, no dejan nada atrás por defecto. Por lo tanto, cualquier cambio realizado en un contenedor se pierde tan pronto como se elimina.

Para guardar (mantener) datos y compartir datos entre contenedores, Docker ideó el concepto de volúmenes . Sencillamente, los volúmenes son directorios (o archivos) fuera del sistema de archivos predeterminado y existen como directorios y archivos estándar en el sistema de archivos host.

En otras palabras, los volúmenes de la ventana acoplable nos permitieron conservar los datos y compartirlos entre contenedores.

Conclusión

Esperamos que este artículo le haya ayudado a comprender los fundamentos básicos de Docker sobre lo que es Docker y el contenedor Docker y cómo ha revolucionado el desarrollo de software.

Con el conocimiento anterior, debe tener una comprensión firme de lo que es Docker en el núcleo.

Puede visitar el sitio web del proyecto o consultar la documentación oficial para obtener más información sobre Docker.


Docker
  1. Cómo ejecutar Nginx en un contenedor Docker:una guía paso a paso

  2. ¿Qué es Docker (y los contenedores de Linux?)

  3. Cómo compartir datos entre contenedores Docker

  4. Cómo listar contenedores Docker

  5. Introducción a la virtualización:una guía completa para principiantes

Comandos de Docker para gestionar el ciclo de vida de los contenedores (guía definitiva)

Guía para principiantes sobre la política de reinicio de Docker

Qué hacer si un contenedor Docker sale inmediatamente

Cómo nombrar o renombrar contenedores Docker

ctop:interfaz superior para monitorear contenedores Docker

Guía para principiantes del mundo Docker