Una breve discusión sobre la imagen, el contenedor y el registro de Docker
1. Definición de términos:
Imagen: Espejo.
Contenedor: Contenedor.
Registro: Almacén espejo.
2. Interrelación:
Docker Registry es un servicio que almacena y distribuye imágenes de forma centralizada, facilitándonos el uso de una determinada imagen en diferentes entornos. Una Resistry también puede estar compuesta por muchos repositorios pequeños que solo almacenan diferentes versiones de la misma imagen.
Docker Image es un sistema de archivos especial, además de proporcionar programas, bibliotecas, recursos, configuración y otros archivos necesarios para el tiempo de ejecución del contenedor, también contiene algunos parámetros de configuración preparados para el tiempo de ejecución (como volúmenes anónimos, entorno). variables, usuarios, etc.). La imagen no contiene ningún dato dinámico y su contenido no cambiará una vez creada. Cuando se diseñó Docker, hizo pleno uso de la tecnología Union FS y la diseñó como una arquitectura de almacenamiento jerárquica. En realidad, la imagen se compone de varias capas de sistemas de archivos. Cuando se construye la imagen, se construirá capa por capa, siendo la capa anterior la base de la siguiente. Una vez construida cada capa, no volverá a cambiar. Cualquier cambio en la capa siguiente solo se producirá en su propia capa. Por ejemplo, la operación de eliminar un archivo en el nivel anterior en realidad no elimina el archivo en el nivel anterior, sino que solo marca el archivo como eliminado en el nivel actual. Cuando se ejecuta el contenedor final, aunque este archivo no se verá, de hecho, el archivo siempre seguirá a la imagen. Por lo tanto, al crear una imagen, debe tener mucho cuidado. Cada capa solo debe contener lo que se debe agregar a la capa. Cualquier elemento adicional debe limpiarse antes de completar la construcción de la capa. La función de almacenamiento por niveles también facilita la reutilización y personalización de imágenes. Incluso puede utilizar la imagen creada previamente como capa base y luego agregar nuevas capas para personalizar lo que necesita y crear una nueva imagen.
La relación entre imagen (Imagen) y contenedor (Container) es como la clase y la instancia en la programación orientada a objetos. La imagen es una definición estática y el contenedor es la entidad cuando se ejecuta la imagen. . Los contenedores se pueden crear, iniciar, detener, eliminar, pausar, etc. La esencia de un contenedor es un proceso, pero a diferencia de los procesos que se ejecutan directamente en el host, los procesos del contenedor se ejecutan en su propio espacio de nombres independiente. Como se mencionó anteriormente, las imágenes utilizan almacenamiento por niveles y lo mismo ocurre con los contenedores. El ciclo de vida de la capa de almacenamiento del contenedor es el mismo que el del contenedor. Cuando el contenedor muere, la capa de almacenamiento del contenedor también muere. Por lo tanto, cualquier información guardada en la capa de almacenamiento del contenedor se perderá cuando se elimine el contenedor. Según las mejores prácticas de Docker, los contenedores no deben escribir ningún dato en su capa de almacenamiento y la capa de almacenamiento del contenedor debe permanecer sin estado. Todas las operaciones de escritura de archivos deben utilizar un volumen de datos (Volumen) o vincular un directorio de host. La lectura y escritura en estas ubicaciones omitirá la capa de almacenamiento del contenedor y leerá y escribirá directamente en el host (o almacenamiento de red). El ciclo de vida del volumen de datos es independiente del contenedor. Si el contenedor muere, el volumen de datos no morirá. Por lo tanto, después de usar el volumen de datos, el contenedor se puede eliminar y volver a ejecutar a voluntad sin perder los datos.
Suplemento:
Para poder administrar contenedores más adelante, Google proporcionó un servicio, el nombre completo es Kubernetes, o K8S para abreviar.
Hay algunos conceptos en K8S, que se enumeran a continuación:
POD, nodo: Nodo maestro, Nodo trabajador.
Estén atentos para más detalles. . . . Enlaces adicionales a seguir.