Es posible que sepa que las tecnologías de virtualización existentes como VirtualBox, VMWare, KVM, Xen o ESXi, etc., Utilice la virtualización completa de la máquina, que ofrece un mayor aislamiento a costa de una mayor sobrecarga, ya que cada máquina virtual ejecuta su propia instancia completa de kernel y sistema operativo.
Los contenedores, por otro lado, generalmente brindan menos aislamiento pero menos sobrecarga al compartir partes del kernel del host y la instancia del sistema operativo.
Lea también: Comenzando con Linux
Los contenedores de Linux no ofrecen una máquina virtual, sino un entorno virtual que tiene su propia CPU, memoria, bloque de E/S, red, etc. Esto es proporcionado por grupos Funciones en el kernel de Linux en el host LXC. es similar a un chroot, pero ofrece mucho más aislamiento.
estibador, por otro lado, es una abstracción de contenedor de alto nivel que administra el ciclo de vida del contenedor. Antes de la versión 0.90, Docker usaba LXC. pero con eso Lanzamiento de la versión 0.9, Docker eliminó LXC como el entorno de tiempo de ejecución predeterminado y lo reemplazó con su propio contenedor libre
Libcontainer proporciona una implementación nativa de Go para crear contenedores con espacios de nombres, cgroups, capacidades y controles de acceso al sistema de archivos. Permite que Docker administre el ciclo de vida del contenedor y realice operaciones adicionales después de crear el contenedor.
Docker le permite agrupar una aplicación con todas sus dependencias en una unidad estandarizada para el desarrollo de software. Y cuando esta unidad se ejecuta en su máquina local, puede garantizar que funcionará exactamente igual en todas partes, desde el control de calidad hasta la puesta en escena y la producción. Aprenderá más adelante en esta serie cómo crear tales unidades estandarizadas y entregarlas desde el entorno local al entorno de producción.
Espero que ahora esté familiarizado con los conceptos básicos de contenedores y en el próximo artículo discutiremos más sobre Docker y su terminología.
Convirtámoslo en una serie interactiva. Háganos saber sus opiniones, dudas o preguntas en los comentarios a continuación.
Cambios:
grupos (también conocidos como grupos de control) es una función del kernel de Linux para limitar, monitorear y registrar el uso de recursos de ciertos procesos (en realidad, grupos de procesos). Ha habido varios esfuerzos para proporcionar agregaciones de procesos en el kernel de Linux, principalmente con fines de seguimiento de recursos. Estos esfuerzos incluyen conjuntos de CPU, CKRM/ResGroups, UserBeanCounters y espacios de nombres de servidores virtuales. Todo esto requiere la idea básica de agrupación/partición de procesos, con procesos recién bifurcados que terminan en el mismo grupo (cgroup) que su proceso principal. Aprenda más sobre cgroup – Introducción a los grupos de control (cgroups).
espacio de nombres – En un servidor en el que planea ejecutar varios servicios, es esencial para la seguridad y la estabilidad que los servicios estén aislados entre sí. Imagine un servidor que ejecuta varios servicios, uno de los cuales está comprometido por un intruso. En tal caso, el intruso podría potencialmente aprovechar ese servicio y dirigirse a otros servicios y posiblemente incluso comprometer todo el servidor. El aislamiento del espacio de nombres puede proporcionar un entorno seguro para eliminar este riesgo. Obtenga más información sobre el espacio de nombres: Comprender los espacios de nombres.
Lea ahora: Primeros pasos con Docker: ecosistema y terminologías de Docker (parte -2)