¿En qué características clave se basa Docker?
sobes.tech AI
Respuesta de la IA
Características clave de Docker:
-
Aislamiento de procesos: Los contenedores están aislados entre sí y del sistema host por naturaleza. Esto se logra mediante mecanismos del núcleo de Linux, como namespaces (PID, NET, IPC, MNT, UTS) y cgroups (para limitar recursos de CPU, memoria, I/O).
-
Imágenes: La imagen de Docker es un artefacto inmutable y en capas que contiene todo lo necesario para ejecutar una aplicación: código, bibliotecas, dependencias, herramientas y archivos de configuración. Las imágenes se construyen siguiendo el principio de "capas sobre capas", lo que permite reutilizar componentes comunes y ahorrar espacio.
-
Contenedores: Un contenedor es una instancia en ejecución de una imagen. Es liviano, portátil y contiene la aplicación en ejecución. Los contenedores pueden iniciarse, detenerse, trasladarse y escalarse rápidamente.
-
Dockerfile: El archivo Dockerfile contiene un conjunto de instrucciones que describen el proceso de construcción de una imagen Docker. Es un enfoque declarativo para crear imágenes que garantiza reproducibilidad y automatización en la construcción.
# Ejemplo de Dockerfile FROM alpine:3.14 // Imagen base RUN apk add --no-cache nginx // Instalación de paquetes COPY html/ /usr/share/nginx/html/ // Copiar archivos EXPOSE 80 // Abrir puerto CMD ["nginx", "-g", "daemon off;"] // Comando al iniciar el contenedor -
Sistema de archivos en capas: Docker utiliza sistemas de archivos union (AUFS, OverlayFS), que permiten crear imágenes a partir de capas. Cada capa representa un conjunto de cambios respecto a la capa anterior. Esta característica permite crear imágenes rápidamente, cachear capas y usar eficientemente el espacio en disco.
-
Registro de Docker: Los registros de Docker (como Docker Hub, GCR, ACR) se usan para almacenar y distribuir imágenes Docker. Facilitan el intercambio de imágenes entre desarrolladores, equipos y entornos.
-
Portabilidad: Las imágenes y los contenedores están diseñados para ser portátiles. Una imagen construida en una plataforma puede ejecutarse en cualquier otra plataforma donde Docker esté instalado, sin necesidad de reconfigurar dependencias.
-
Inicio rápido: Iniciar un contenedor es mucho más rápido que iniciar una máquina virtual, debido a la ausencia de necesidad de cargar un sistema operativo completo.
-
Uso eficiente de recursos: Los contenedores utilizan los recursos del sistema host de manera más eficiente que las máquinas virtuales, ya que no requieren asignar núcleos de CPU separados.