Conocimientos teóricos básicos de Docker (1)

Prefacio

Desde que Docker se hizo popular en 2013, ha liderado el camino. Las siguientes son algunas teorías básicas de Docker que he recopilado. Personalmente, creo que estos son los peldaños para jugar a Docker, K8S, etc. en el futuro. ¡Son muy básicas e importantes!

Uno: teoría de Docker

1.1: ¿Qué es Docker? cual es el efecto?

Inserte la descripción de la imagen aquí

Docker es una plataforma abierta para desarrollar, entregar y ejecutar aplicaciones. Docker le permite separar su aplicación de la infraestructura para que pueda entregar software rápidamente.
Es un motor contenedor de aplicaciones de código abierto que permite a los desarrolladores empaquetar la aplicación cerrada y los paquetes dependientes en una imagen portátil y luego publicarla en cualquier máquina popular de Linux o Windows, que también se puede virtualizar. Los contenedores utilizan completamente el mecanismo sandbox y no habrá interfaces entre ellos.
Sandbox: en el campo de la seguridad informática, sandbox es un mecanismo operativo aislado para programas.
Docker se convirtió en un éxito en 2013. Hasta ahora, ha Conviértase en sinónimo de tecnología de contenedores.
Docker ha tenido como objetivo proporcionar un entorno de ejecución estandarizado desde el principio, realmente "compilar una vez, ejecutar en cualquier lugar". La misma versión de compilación se puede utilizar en cualquier entorno, como desarrollo, pruebas, prelanzamiento, producción, etc. Desacoplamiento del sistema operativo subyacente. Sobre esta base, se ha desarrollado aún más la tecnología CaaS (Container as a Service).

1.2: escenarios de uso de Docker

La implementación simple de aplicaciones empaquetadas
se puede migrar libremente desde el hardware subyacente (se logra el aislamiento de la aplicación, las aplicaciones se dividen y desacoplan), por ejemplo: migración del servidor de Tencent Cloud a Alibaba Cloud
Continuous Integration and Continuous Delivery (CI / CD): Desarrollo Para probar el lanzamiento,
implementar
microservicios, proporcionar productos PAAS (plataforma como servicio) {El host en la nube OpenStack es similar a Alibaba Cloud ECS, pertenece a IAAS, Docker (K8S) pertenece a PAAS}

1.3: Motor Docker

Docker Engine es una aplicación cliente-servidor con los siguientes componentes principales: El
servidor es un programa de larga duración llamado proceso demonio (comando dockerd).
API REST, que especifica la interfaz que los programas pueden usar para comunicarse con el demonio e instruir sus operaciones.
Cliente de interfaz de línea de comandos (CLI) (comando docker).
marca

1.4: Arquitectura de Docker

Docker utiliza una arquitectura cliente-servidor. El cliente de Docker habla con el demonio de Docker, que completa el pesado trabajo de compilar, ejecutar y distribuir contenedores de Docker.

Docker es diferente de la virtualización tradicional. No requiere recursos de hardware virtual y utiliza directamente el motor de contenedores, por lo que es rápido

Cliente Docker: cliente

El cliente de Docker (Docker) es la forma principal en que muchos usuarios de Docker interactúan con Docker. Cuando usa comandos como docker run, el cliente enviará estos comandos a dockerd para ejecutarlos. El comando de Docker utiliza la API de Docker. El cliente de Docker puede comunicarse con varios demonios.
Demonio de Docker: demonio

El demonio de Docker (dockerd) escucha las solicitudes de la API de Docker y administra objetos de Docker como imágenes, contenedores, redes y volúmenes. El daemon también puede comunicarse con otros daemons para administrar los servicios de Docker.
Imágenes de Docker: duplicación

El contenedor se puede empaquetar en una imagen espejo
Docker container: container

Registro de Docker: almacén espejo

El lugar para almacenar la imagen se encuentra en el Docker Hub público de forma predeterminada, y puede construir un almacén personal.
Inserte la descripción de la imagen aquí

1.5: la diferencia entre contenedores y máquinas virtuales

Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí

1.6: Espacios de nombres

Docker usa una tecnología llamada espacios de nombres para proporcionar espacios de trabajo aislados para contenedores. Al ejecutar un contenedor, Docker crea un conjunto de espacios de nombres para el contenedor.
Estos espacios de nombres proporcionan una capa de aislamiento. Cada aspecto del contenedor se ejecuta en un espacio de nombres separado y su acceso está limitado a ese espacio de nombres.
Docker Engine utiliza los siguientes espacios de nombres en Linux:
** El espacio de nombres pid: ** Aislamiento de procesos (PID: ID de proceso).
** El espacio de nombres de red: ** Interfaz de red de gestión (NET: red).
** El espacio de nombres de IPC: ** Administra el acceso a los recursos de IPC (IPC: comunicación entre procesos).
** El espacio de nombres mnt: ** Administra los puntos de montaje del sistema de archivos (MNT: mount).
** El espacio de nombres uts: ** Aísla los identificadores de kernel y de versión. (UTS: Sistema de tiempo compartido Unix).

1.7: Grupos de control

El motor Docker en Linux también se basa en otra tecnología llamada cgroups. Cgroup restringe las aplicaciones a un conjunto específico de recursos. El grupo de control permite que Docker Engine comparta los recursos de hardware disponibles con el contenedor y aplique selectivamente las restricciones y restricciones. Por ejemplo, puede limitar la memoria disponible a contenedores específicos.

Supongo que te gusta

Origin blog.csdn.net/BIGmustang/article/details/108692049
Recomendado
Clasificación