Tutorial de Docker: introducción a Docker y la contenedorización



En este tutorial de Docker, comprenderá la necesidad detrás de Docker y obtendrá una introducción a Docker. Es el primer blog de la serie de tutoriales de Docker.

Espero que no se haya perdido la serie de blogs de tutoriales de DevOps anteriores. Ir a través de aquí.La tendencia incontenible del contenedor Docker está creciendo y las organizaciones buscan profesionales que posean .Ahora, esta vez, lo guiaremos a través de una Introducción a Docker.

Tutorial de Docker

Este blog de tutoriales de Docker le brindará una exposición conceptual y práctica de Docker, una tecnología de contenedorización de la nueva era.





En este blog, nos centraremos en los siguientes temas:

  • ¿Qué es la virtualización?
  • ¿Qué es la contenerización?
  • Ventajas de la contenerización sobre la virtualización
  • Introducción a Docker
  • Beneficios de Docker
  • Virtualización vs contenerización
  • Instalación de Docker
  • Dockerfile, imagen de Docker y contenedor de Docker
  • ¿Qué es Docker Hub?
  • Arquitectura de Docker
  • Docker Compose

Docker está ganando popularidad y su uso se está extendiendo como la pólvora. El motivo de la creciente popularidad de Docker es la medida en que se puede utilizar en una organización de TI. Muy pocas herramientas tienen la funcionalidad para resultar útiles tanto para los desarrolladores como para los administradores del sistema. Docker es una de esas herramientas que realmente cumple con su promesa de Construir , Embarcacion y Carrera .



En palabras simples, Docker es una plataforma de contenedorización de software, lo que significa que puede crear su aplicación, empaquetarla junto con sus dependencias en un contenedor y luego estos contenedores pueden enviarse fácilmente para ejecutarse en otras máquinas.

Por ejemplo: Consideremos una aplicación basada en Linux que ha sido escrita tanto en Ruby como en Python. Esta aplicación requiere una versión específica de linux, Ruby y Python. Para evitar conflictos de versiones por parte del usuario, se puede crear un contenedor docker de Linux con las versiones requeridas de Ruby y Python instaladas junto con la aplicación. Ahora los usuarios finales pueden utilizar la aplicación fácilmente ejecutando este contenedor sin preocuparse por las dependencias o conflictos de versiones.

Estos contenedores utilizan la creación de contenedores, que puede considerarse como una versión evolucionada de la virtualización. La misma tarea también se puede lograr utilizando máquinas virtuales, sin embargo, no es muy eficiente.



Generalmente recibo una pregunta en este punto, es decir, ¿cuál es la diferencia entre virtualización y contenedorización? Estos dos términos son muy similares entre sí. Entonces, déjame decirte primero ¿Qué es la virtualización?

¿Qué es la virtualización?

La virtualización es la técnica de importar un sistema operativo invitado sobre un sistema operativo host. Esta técnica fue una revelación al principio porque permitió a los desarrolladores ejecutar múltiples sistemas operativos en diferentes máquinas virtuales, todas ejecutándose en el mismo host. Esto eliminó la necesidad de recursos de hardware adicionales. Las ventajas de las máquinas virtuales o la virtualización son:

  • Se pueden ejecutar varios sistemas operativos en la misma máquina
  • El mantenimiento y la recuperación fueron fáciles en caso de fallas.
  • El costo total de propiedad también fue menor debido a la menor necesidad de infraestructura.

Arquitectura de máquina virtual - Tutorial de Docker sobre introducción a Docker - Edureka

En el diagrama de la derecha, puede ver que hay un sistema operativo host en el que se ejecutan 3 sistemas operativos invitados que no son más que las máquinas virtuales.

Como sabes, nada es perfecto, la virtualización también tiene algunas deficiencias. La ejecución de varias máquinas virtuales en el mismo sistema operativo host provoca una degradación del rendimiento. Esto se debe a que el sistema operativo invitado se ejecuta sobre el sistema operativo host, que tendrá su propio kernel y un conjunto de bibliotecas y dependencias. Esto ocupa una gran parte de los recursos del sistema, es decir, disco duro, procesador y especialmente RAM.

Otro problema con las máquinas virtuales que utilizan la virtualización es que tarda casi un minuto en iniciarse.Esto es muy crítico en el caso de aplicaciones en tiempo real.

Las siguientes son las desventajas de la virtualización:

  • La ejecución de varias máquinas virtuales genera un rendimiento inestable
  • Los hipervisores no son tan eficientes como el sistema operativo host
  • El proceso de arranque es largo y lleva tiempo

Estos inconvenientes llevaron a la aparición de una nueva técnica llamada contenedorización. Ahora déjame contarte sobre la contenerización.

¿Qué es la contenerización?

La contenerización es la técnica de llevar la virtualización al nivel del sistema operativo. Mientras que la virtualización aporta abstracción al hardware, la creación de contenedores aporta abstracción al sistema operativo. Tenga en cuenta que la contenerización también es un tipo de virtualización. Sin embargo, la creación de contenedores es más eficiente porque no hay un sistema operativo invitado aquí y utiliza el sistema operativo de un host, comparte bibliotecas y recursos relevantes cuando sea necesario, a diferencia de las máquinas virtuales. Los binarios de aplicaciones y las bibliotecas de contenedores se ejecutan en el kernel del host, lo que hace que el procesamiento y la ejecución sean muy rápidos. Incluso el arranque de un contenedor toma solo una fracción de segundo. Debido a que todos los contenedores comparten el sistema operativo del host y solo contienen los binarios y bibliotecas relacionados con la aplicación. Son livianos y más rápidos que las máquinas virtuales.

Ventajas de la contenerización sobre la virtualización:

  • Los contenedores en el mismo kernel del sistema operativo son más livianos y pequeños
  • Mejor utilización de recursos en comparación con las VM
  • El proceso de inicio es corto y tarda unos segundos

En el diagrama de la derecha, puede ver que hay un sistema operativo host que comparten todos los contenedores. Los contenedores solo contienen bibliotecas específicas de la aplicación que están separadas para cada contenedor y son más rápidas y no desperdician recursos.

Todos estos contenedores son manejados por la capa de contenedorización que no es nativa del sistema operativo host. Por lo tanto, se necesita un software que le permita crear y ejecutar contenedores en su sistema operativo host.

Vea este video tutorial de Docker para obtener una comprensión profunda de Docker.

Tutorial de Docker para principiantes | ¿Qué es Docker? | Herramientas de DevOps | Edureka

Ahora, permítame explicarle la introducción a Docker.

cómo convertir un doble a un int en java

Tutorial de Docker: introducción a Docker

Docker es una plataforma de contenedorización que empaqueta su aplicación y todas sus dependencias juntas en forma de contenedores para garantizar que su aplicación funcione sin problemas en cualquier entorno.

Como puede ver en el diagrama de la derecha, cada aplicación se ejecutará en un contenedor separado y tendrá su propio conjunto de bibliotecas y dependencias. Esto también garantiza que haya aislamiento a nivel de proceso, lo que significa que cada aplicación es independiente de otras aplicaciones, lo que brinda a los desarrolladores la seguridad de que pueden crear aplicaciones que no interfieran entre sí.

Como desarrollador, puedo crear un contenedor que tenga diferentes aplicaciones instaladas y dárselo a mi equipo de control de calidad, que solo necesitará ejecutar el contenedor para replicar el entorno del desarrollador.

Beneficios de Docker

Ahora, el equipo de QA no necesita instalar todo el software y las aplicaciones dependientes para probar el código y esto les ayuda a ahorrar mucho tiempo y energía. Esto también garantiza que el entorno de trabajo sea coherente entre todas las personas involucradas en el proceso, desde el desarrollo hasta la implementación. La cantidad de sistemas se puede ampliar fácilmente y el código se puede implementar en ellos sin esfuerzo.

Virtualización vs contenerización

Tanto la virtualización como la contenerización le permiten ejecutar varios sistemas operativos dentro de una máquina host.

La virtualización se ocupa de crear muchos sistemas operativos en una sola máquina host. La contenerización, por otro lado, creará múltiples contenedores para cada tipo de aplicación según sea necesario.

Figura: ¿Qué es Big Data Analytics: virtualización frente a contenedorización?

Como podemos ver en la imagen, la principal diferencia es que hay múltiples sistemas operativos invitados en la virtualización que están ausentes en la contenedorización. La mejor parte de la contenedorización es que es muy liviana en comparación con la virtualización pesada.

que es hover en css

Ahora, instalemos Docker.

Instalar Docker:

Instalaré Docker en mi máquina Ubuntu 17.10. Los siguientes son los pasos para instalar Docker:

  1. Instalar paquetes requeridos
  2. Configurar el repositorio de Docker
  3. Instalar Docker en Ubuntu

1. Instale los paquetes necesarios:

Hay ciertos paquetes que necesita en su sistema para instalar Docker. Ejecute el siguiente comando para instalar esos paquetes.

sudo apt-get install curl apt-transport-https ca -ificates software-properties-common

2. Configure el repositorio de Docker:

Ahora, importe la clave GPG oficial de Dockers para verificar la firma de los paquetes antes de instalarlos con apt-get. Ejecute el siguiente comando en la terminal:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add

Ahora, agregue el repositorio de Docker en su sistema Ubuntu que contiene paquetes de Docker, incluidas sus dependencias, para eso ejecute el siguiente comando:

sudo add-apt-repository 'deb [arch = amd64] https://download.docker.com/linux/ubuntu $ (lsb_release -cs) estable'

3. Instale Docker en Ubuntu:

Ahora necesita actualizar apt index e instalar Docker community edition, para eso ejecute los siguientes comandos:

sudo apt-get update sudo apt-get install docker-ce

¡Felicidades! Ha instalado Docker correctamente. Además, consulte algunos Comandos de Docker .

Ahora veamos algunos conceptos importantes de Docker.

Dockerfile, imagen de Docker y contenedor de Docker:

  1. Una imagen de Docker se crea mediante la secuencia de comandos escritos en un archivo llamado Dockerfile.
  2. Cuando este Dockerfile se ejecuta con un comando de Docker, da como resultado una imagen de Docker con un nombre.
  3. Cuando esta imagen se ejecuta mediante el comando 'docker run', iniciará por sí misma cualquier aplicación o servicio que deba iniciar en su ejecución.

Docker Hub:

Docker Hub es como GitHub para Docker Images. Básicamente es un registro en la nube donde puede encontrar imágenes de Docker cargadas por diferentes comunidades, también puede desarrollar su propia imagen y cargarla en Docker Hub, pero primero, debe crear una cuenta en DockerHub.

Arquitectura de Docker:

Consiste en un motor Docker que es una aplicación cliente-servidor con tres componentes principales:

  1. Un servidor que es un tipo de programa de larga ejecución llamado proceso daemon (el comando docker).
  2. Una API REST que especifica interfaces que los programas pueden usar para hablar con el demonio e indicarle qué hacer.
  3. Un cliente de interfaz de línea de comandos (CLI) (el comando docker).
  4. La CLI utiliza la API REST de Docker para controlar o interactuar con el demonio de Docker a través de secuencias de comandos o comandos directos de la CLI. Muchas otras aplicaciones de Docker utilizan la API y la CLI subyacentes.

Consulte este blog para leer más sobre .

Finalmente, en este blog Tutorial de Docker, hablaré sobre Docker Compose.

Docker Compose:

Docker Compose se utiliza básicamente para ejecutar varios contenedores Docker como un solo servidor. Dejame darte un ejemplo:

Supongamos que tengo una aplicación que requiere WordPress, Maria DB y PHP MyAdmin. Puedo crear un archivo que iniciaría ambos contenedores como un servicio sin la necesidad de iniciar cada uno por separado. Es realmente útil, especialmente si tiene una arquitectura de microservicio.

Refiera mi blog en Contenedor Docker para entender cómo ejecutarlo de manera práctica.

Además, puede leer este blog sobre cómo puede contener una aplicación de pila media usando Docker Compose.

Con esto, llegamos al final del primer blog de Docker Tutorial sobre Introducción a Docker & Containerization.

Consulte nuestro próximo blog sobre Docker:

Ahora que ha entendido qué es DevOps, consulte nuestro por Edureka, una empresa de aprendizaje en línea de confianza con una red de más de 250.000 alumnos satisfechos repartidos por todo el mundo. El curso de formación de certificación de Edureka DevOps ayuda a los alumnos a adquirir experiencia en varios procesos y herramientas de DevOps como Puppet, Jenkins, Nagios, Ansible, Chef, Saltstack y GIT para automatizar varios pasos en SDLC.

Tienes una pregunta para nosotros? Menciónalo en la sección de comentarios y nos comunicaremos contigo.