Introducción a la tecnología de contenedores Docker (1) Introducción a Docker

prefacio

El contenido central proviene del enlace de video 1. Espero que todos apoyen mucho al autor.
Este artículo se usa para grabar para evitar el olvido.

(1) Introducción a Docker

1 ¿Qué es Docker?

1.1 La aparición de Docker

  • Pregunta: ¿Por qué aparece Docker?

Suponga que está desarrollando una tienda en línea, está utilizando una computadora portátil y su entorno de desarrollo tiene una configuración específica. Otros desarrolladores también se encuentran en diferentes configuraciones de entorno. La aplicación que está desarrollando depende de su configuración actual y también depende de ciertos archivos de configuración. Además, su empresa tiene entornos de prueba y producción estandarizados con su propia configuración y conjunto de archivos de soporte. Desea emular tantos de estos entornos localmente como sea posible sin incurrir en la sobrecarga de recrear el entorno del servidor. (es decir, los entornos de desarrollo e implementación son inconsistentes)

La pregunta es: ¿cómo se asegura de que su aplicación se ejecutará y pasará las pruebas de calidad en estos entornos? ¿Y sin dolores de cabeza de versiones, dolores de cabeza de configuración, recodificación y corrección de errores durante la implementación?

La respuesta es usar contenedores. La razón por la que Docker se desarrolla con tanta rapidez también se debe a que proporciona una solución estandarizada para esto: tecnología de virtualización de contenedores y migración de sistemas sin inconvenientes.

La configuración del entorno es bastante complicada, si cambias una máquina, tienes que hacerlo todo de nuevo, lo cual es laborioso y requiere mucho tiempo. Mucha gente piensa, ¿se puede resolver el problema de manera fundamental y el software se puede instalar con el entorno ? Es decir, al instalar, copiar exactamente el entorno original. Con Docker, los desarrolladores pueden eliminar el problema de "funciona en mi máquina" al codificar.

inserte la descripción de la imagen aquí
Antes de configurar un entorno operativo de aplicación en el servidor, es necesario instalar varios software.Tome como ejemplo el entorno del proyecto de comercio electrónico, se requieren paquetes de controladores Java/RabbitMQ/MySQL/JDBC. Sin mencionar lo problemático que es instalar y configurar estas cosas, aún no es multiplataforma. Si instalamos estos entornos en Windows, tendríamos que reinstalarlos en Linux. Además, incluso si no se cruza el sistema operativo, es muy problemático trasplantar la aplicación a otro servidor con el mismo sistema operativo.

Tradicionalmente se cree que una vez que se completa el desarrollo/prueba de codificación de software, la salida es un programa o un código de bytes binario que se puede compilar y ejecutar (Java como ejemplo). Para que estos programas se ejecuten sin problemas, el equipo de desarrollo también debe preparar archivos de implementación completos para que el equipo de operación y mantenimiento pueda implementar la aplicación. El desarrollo debe informar claramente al equipo de implementación de operación y mantenimiento de todos los archivos de configuración + todo el software . ambientes utilizados. Aun así, sin embargo, a menudo se producen errores de implementación . La aparición de Docker ha permitido a Docker romper con el concepto anterior de "programas como aplicaciones". Excepto por el núcleo del sistema operativo a través de las imágenes, el entorno del sistema necesario para ejecutar la aplicación se empaqueta de abajo hacia arriba para lograr una operación multiplataforma perfecta de la aplicación .

1.2 El concepto de Docker

Docker es un proyecto de código abierto en la nube basado en el lenguaje Go .
El objetivo principal de Docker es "Crear, enviar y ejecutar cualquier aplicación, en cualquier lugar", que es hacer que la aplicación del usuario (que puede ser una aplicación WEB o una aplicación de base de datos), etc.) y su entorno operativo pueda lograr "reflejar una vez , correr por todas partes" .
inserte la descripción de la imagen aquí

La aparición de la tecnología de contenedores de Linux resuelve ese problema, y ​​Docker se desarrolla sobre la base de ello . La aplicación se refleja, y el espejo se convierte en una instancia que se ejecuta en el contenedor de Docker, y el contenedor de Docker es consistente en cualquier sistema operativo, lo que permite que sea multiplataforma y multiservidor. Solo necesita configurar el entorno una vez y puede implementarlo en otra máquina con un solo clic, lo que simplifica enormemente la operación.

1.3 Una oración

Un contenedor de software que resuelve los problemas del entorno operativo y la configuración , facilita la integración continua y contribuye a la tecnología de virtualización de contenedores del lanzamiento general.

2 Comparando contenedores con máquinas virtuales

2.1 Breve historia del desarrollo de contenedores

inserte la descripción de la imagen aquí

inserte la descripción de la imagen aquí

2.2 Tecnología de máquina virtual tradicional

La máquina virtual (máquina virtual) es una solución con instalación de entorno.
Puede ejecutar otro sistema operativo en un sistema operativo, como ejecutar el sistema Linux CentOS7 en el sistema Windows 10. La aplicación no es consciente de esto, porque la máquina virtual se ve exactamente igual que el sistema real, pero para el sistema subyacente, la máquina virtual es solo un archivo ordinario, que se puede eliminar cuando no se necesita y no tiene ningún efecto. en otras partes. Este tipo de máquina virtual ejecuta perfectamente otro sistema, lo que puede mantener sin cambios la lógica entre la aplicación, el sistema operativo y el hardware.

La tecnología tradicional de máquinas virtuales se basa en el sistema de administración de máquinas virtuales (como: VirtualBox y VMWare, etc.) instalado en el sistema operativo principal, creando una máquina virtual (virtualizando varios hardware), instalando un sistema operativo secundario en la máquina virtual, y crear una máquina virtual en el sistema operativo secundario Instalar e implementar varias aplicaciones.

inserte la descripción de la imagen aquí
Desventajas de las máquinas virtuales:
1. Más uso de recursos
2. Más pasos redundantes
3. Arranque lento

2.3 Tecnología de virtualización de contenedores

Debido a algunas deficiencias de la máquina virtual anterior, Linux ha desarrollado otra tecnología de virtualización:
Contenedores de Linux (Linux Containers, abreviado como LXC)
Los contenedores de Linux son una serie de procesos aislados de otras partes del sistema, que se ejecutan desde otro espejo, y la imagen proporciona todos los archivos necesarios para respaldar el proceso. La imagen proporcionada por el contenedor contiene todas las dependencias de la aplicación, por lo que es portátil y coherente desde el desarrollo hasta la prueba y la producción.

En lugar de simular un sistema operativo completo , los contenedores de Linux aíslan los procesos. Con contenedores, es posible empaquetar todos los recursos necesarios para que el software se ejecute en un contenedor aislado. A diferencia de las máquinas virtuales, los contenedores de Linux no necesitan incluir un sistema operativo completo , sino solo los recursos de la biblioteca y la configuración necesaria para que el software funcione. De este modo, el sistema se vuelve eficiente y liviano y garantiza que el software implementado en cualquier entorno pueda ejecutarse de manera uniforme.
inserte la descripción de la imagen aquí

Los contenedores Docker implementan la virtualización a nivel de sistema operativo y reutilizan directamente el sistema operativo del host local, mientras que las máquinas virtuales tradicionales implementan la virtualización a nivel de hardware. En comparación con las máquinas virtuales tradicionales, Docker tiene las ventajas de una velocidad de inicio rápida y un tamaño reducido.

2.4 Comparación

  • La tecnología de máquina virtual tradicional consiste en virtualizar un conjunto de hardware, ejecutar un sistema operativo completo en él y luego ejecutar el proceso de aplicación requerido en el sistema;
  • El proceso de aplicación en el contenedor se ejecuta directamente en el kernel del host. El contenedor no tiene su propio kernel y no realiza virtualización de hardware . Por lo tanto, los contenedores son más portátiles que las máquinas virtuales tradicionales.
  • Cada contenedor está aislado entre sí y cada contenedor tiene su propio sistema de archivos. Los procesos entre contenedores no se afectarán entre sí y los recursos informáticos se pueden distinguir.

3 ¿Qué puede hacer Docker?

(https://img-blog.csdnimg.cn/02e4cf95384b44b6a9169ceaba248ae8.png)

4 Descarga acoplable

Supongo que te gusta

Origin blog.csdn.net/qq_52358603/article/details/128122046
Recomendado
Clasificación