Conoce el mundo de Docker

Introducción a Docker:

  • Docker es un software que se ejecuta en Linux y Windows y se utiliza para crear, administrar y organizar contenedores.
  • Docker es parte del proyecto de código abierto Moby desarrollado en GitHub.
  • La empresa Docker, ubicada en San Francisco, es la encargada de mantener todo el proyecto de código abierto de Moby. La empresa Docker también ofrece una versión comercial y una versión comunitaria.

 Dockeræ å¿

 

Motor de orquestación y tiempo de ejecución de Docker:

  • El motor de Docker es una herramienta de infraestructura para ejecutar y organizar contenedores. Los lectores con experiencia en administración de VMware pueden compararlo con ESXi.
  • ESXi es el hipervisor principal para ejecutar máquinas virtuales y el motor Docker es el tiempo de ejecución de contenedor principal para ejecutar contenedores.
  • Otras empresas de Docker o productos de terceros se desarrollan e integran alrededor del motor de Docker.

å´ç »Dockerå¼æè¿è¡å¼ååéæç产å

 

 

Proyecto de código abierto de Docker (Moby):

 Moby es un proyecto de código abierto creado por Docker para habilitar y acelerar la contenedorización de software.

Proporciona un "conjunto Lego" de componentes del kit de herramientas, el marco para ensamblarlos en sistemas personalizados basados ​​en contenedores y un lugar para que todos los entusiastas y profesionales de los contenedores experimenten e intercambien ideas. Los componentes incluyen herramientas de construcción de contenedores, un registro de contenedores, herramientas de orquestación, un tiempo de ejecución y más, y estos pueden usarse como bloques de construcción junto con otras herramientas y proyectos.

Solomon Hykes, CTO de Docker, explicó el movimiento:

Según el diseño, Moby está dirigido a desarrolladores de sistemas que quieran construir sus propios sistemas basados ​​en contenedores, en lugar de desarrolladores de aplicaciones que pueden usar Docker u otras plataformas de contenedores. Los participantes del proyecto Moby pueden elegir entre una biblioteca de componentes derivada de Docker, o también pueden optar por "traer sus propios componentes" (BYOC), que se pueden empaquetar en un contenedor, y luego mezclar y combinar todos los componentes para crear un sistema de contenedores.

 

Escenarios de aplicación de Docker:

  • [Arquitectura de microservicio] Mediante el análisis y el modelado de negocios de áreas comerciales específicas, la lógica comercial compleja se separa en un conjunto de servicios pequeño y específico, de bajo acoplamiento y altamente autónomo, y el contenedor nativo es liviano y se implementa de manera uniforme. ideas para la administración, programación e implementación unificadas de varios microservicios, y reducir en gran medida las dependencias entre servicios y servicios, y entre versiones y versiones, de modo que el mismo microservicio pueda mantener un buen rendimiento en diferentes entornos.

  • [Continuous Integration (CI) y Continuous Delivery / Deployment (CD)] La plataforma DevOps basada en contenedores nativos proporciona a los usuarios un entorno de desarrollo básico, de modo que los desarrolladores solo necesitan centrarse en el desarrollo de código para reducir la carga de trabajo de instalación y configuración de las herramientas relacionadas . Al mismo tiempo, las imágenes de contenedores enriquecidas permiten al personal de operación y mantenimiento implementar rápidamente los servicios necesarios para el desarrollo en la plataforma y respaldar los servicios vinculantes mediante variables de entorno. Tenga en cuenta el aislamiento del entorno de desarrollo, el entorno de prueba y el entorno de producción, así como la rápida construcción y reciclaje del entorno, lo que mejora la eficiencia general.

  • [Escalado elástico rápido] Con la capacidad de los contenedores para iniciar, implementar y simultaneidad masiva rápidamente, para aplicaciones que requieren grandes cambios en la demanda y necesitan iniciar rápidamente cientos o incluso miles de máquinas, los contenedores pueden satisfacer muy bien las necesidades comerciales repentinas.

 

Docker VS VM (máquina virtual):

Tanto los contenedores como las máquinas virtuales dependen de [Host] para ejecutarse. La máquina host puede ser = "[Notebook], [PC Host], [Raspberry Pi], [Physical Server in the Data Center], [Una instancia de la nube pública].

En el ejemplo anterior, se asume que el host es un servidor físico que necesita ejecutar 4 aplicaciones comerciales.

  • [Modelo de contenedor de Docker] Una vez iniciado el servidor, se iniciará el sistema operativo seleccionado. En el mundo de Docker, puede elegir Linux o una nueva versión de Windows que admita primitivas de contenedor en el kernel. Al igual que el modelo de máquina virtual, el sistema operativo también ocupa todos los recursos de hardware. Por encima de la capa del sistema operativo, es necesario instalar un motor de contenedor (como Docker). El motor de contenedores puede obtener recursos del sistema, como el árbol de procesos, el sistema de archivos y la pila de red, y luego dividir los recursos en estructuras de recursos seguras y aisladas llamadas contenedores. Cada contenedor parece un sistema operativo real, dentro del cual se pueden ejecutar aplicaciones. De acuerdo con los supuestos anteriores, es necesario ejecutar 4 aplicaciones en la máquina física. Por lo tanto, es necesario dividir 4 contenedores y ejecutar una aplicación en cada contenedor, como se muestra en la figura de arriba (izquierda).
  • [Modelo de máquina virtual] En el modelo de máquina virtual, primero encienda la máquina física e inicie el programa de arranque del hipervisor. Una vez que se inicia el hipervisor, ocupará todos los recursos físicos de la máquina, como CPU, RAM, almacenamiento y NIC. El hipervisor luego dividirá estos recursos físicos en recursos virtuales, y tendrán exactamente el mismo aspecto que los recursos físicos reales. El hipervisor luego empaqueta estos recursos en una estructura de software llamada máquina virtual (VM). De esta forma, los usuarios pueden utilizar estas máquinas virtuales e instalar sistemas operativos y aplicaciones en ellas. Como se mencionó anteriormente, necesitamos ejecutar 4 aplicaciones en la máquina física, por lo que necesitamos crear 4 máquinas virtuales e instalar 4 sistemas operativos en el hipervisor, y luego instalar 4 aplicaciones. Cuando se completa la operación, la estructura es como se muestra en la figura de arriba (lado derecho).

Resumen de Docker:

  • Docker es un motor contenedor de aplicaciones de código abierto que admite el desarrollo y la integración de terceros;
  • Docker permite a los desarrolladores empaquetar sus aplicaciones y paquetes dependientes en una imagen liviana y portátil, y luego lanzarlos e implementarlos en cualquier máquina Linux popular, que también se puede virtualizar;
  • Los contenedores de Docker se crean a través de imágenes de Docker.
  • No habrá conflictos de interfaz entre los contenedores de Docker, logrando el aislamiento a nivel de proceso;
  • El contenedor Docker tiene una sobrecarga de rendimiento extremadamente baja, consume menos recursos, tiene una velocidad de inicio rápida y es más liviano que las VM;

 

[Sistema central de Docker]:

  • Contenedor: contenedor --- módulo contenedor "==" objeto --- aplicación en ejecución independiente;
  • Imagen reflejada: aplicación de ejecución independiente del módulo contenedor "==";
  • Almacén: muelle, imagen de almacenamiento de montaje "==";

 

[Diagrama de arquitectura de ejecución externa de Docker]

Docker es un modelo típico de arquitectura cliente-servidor (C / S). Utiliza API remotas para administrar y crear contenedores Docker. Las herramientas comúnmente utilizadas en el lado del cliente incluyen:

  1. Bash Shell (predeterminado de Linux)
  2. XShell (es un potente software de emulación de terminal seguro)
  3. PowerShell (es un lenguaje de script y shell de línea de comandos basado en tareas multiplataforma de código abierto construido en .net core, compatible con cmd) 
  4. Windows PowerShell (plataforma Windows, construida en .net, compatible con cmd)

[La composición de Docker]

 Nota: Más referencia para pwsh =》https://docs.microsoft.com/zh-cn/powershell/scripting/overview?view=powershell-7

Imagen de Docker (Imágenes) Una imagen de Docker es una plantilla que se utiliza para crear un contenedor de Docker.
Docker 容 (contenedor) Un contenedor es una aplicación o un grupo de aplicaciones que se ejecutan de forma independiente.
Cliente de Docker (cliente) El cliente de Docker utiliza la API de Docker ( https://docs.docker.com/reference/api/docker_remote_api ) para comunicarse con el demonio de Docker a través de la línea de comandos u otras herramientas .
Host de Docker (Host) Se utiliza una máquina física o virtual para ejecutar el demonio y el contenedor de Docker.
Almacén de Docker (registro)

El almacén de Docker se utiliza para almacenar imágenes, lo que puede entenderse como un almacén de código en el control de código.

Docker Hub ( https://hub.docker.com ) proporciona una gran colección de imágenes para su uso.

Máquina Docker Docker Machine es una herramienta de línea de comandos que simplifica la instalación de Docker. Puede instalar Docker en las plataformas correspondientes a través de una línea de comandos simple, como VirtualBox, Digital Ocean y Microsoft Azure.

 

[Cliente de seguridad y comunicación del demonio de Docker]

éç½®å® ¢ æ · ç «¯åæå ¡ç« ¯éè¿ç½ç »è¿è¡éä¿¡

Docker  usa un modelo cliente-servidor. El cliente usa CLI, mientras que el servidor (demonio) implementa funciones y proporciona API REST externamente. 

El cliente se llama docker (docker.exe en Windows) y el demonio se llama dockerd (dockerd.exe en Windows). El método de instalación predeterminado instala el cliente y el servidor en el mismo host y está configurado para comunicarse a través del conector PIC seguro local.

  • Linux: /var/run/docker.sock。
  • Windows : //./pipe/docker_engine。

De forma predeterminada, 2375 se utiliza como puerto de comunicación no cifrado entre el cliente y el servidor, y 2376 se utiliza para la comunicación cifrada. Esto está bien en el laboratorio, pero el entorno de producción es inaceptable. ¡TLS es la solución!
Docker permite a los usuarios configurar solo conexiones TLS seguras entre el cliente y el demonio. Esta configuración se recomienda en un entorno de producción, incluso en una red interna de confianza.
Docker proporciona dos modos para utilizar la comunicación segura basada en TLS entre el cliente y el demonio.

  • Modo daemon: el daemon de Docker solo acepta enlaces a clientes autenticados.
  • Modo de cliente: el cliente de Docker solo acepta enlaces iniciados por el demonio de Docker con un certificado, y el certificado debe estar firmado por una CA de confianza.

El uso de ambos modos al mismo tiempo puede proporcionar el más alto nivel de seguridad. A continuación, se utilizará un entorno experimental simple para completar el proceso de configuración del modo demonio de Docker y el modo cliente TLS.

 

[Proceso de construcción en contenedor de la aplicación]:

Algunas referencias a la información anterior:

Supongo que te gusta

Origin blog.csdn.net/ChaITSimpleLove/article/details/105184261
Recomendado
Clasificación