¿Cuál es la diferencia entre Docker, LXD y LXC [cerrado]

164

¿Cuál es la diferencia entre Docker, LXD y LXC? ¿Ofrecen los mismos servicios o diferentes?

Ijaz Ahmad Khan
fuente
1
Encontré que este es útil. La última y mejor información. people.canonical.com/~kirkland/…
Ijaz Ahmad Khan
Una muy buena explicación en infoworld.com/article/3204171/linux/… . Mencionó que Although Docker started out as an open source project to build specialized LXC, it later morphed into its own container runtime environmentmás en el enlace
Alireza Fattahi

Respuestas:

133

No, LXC, Docker y LXD no son lo mismo. En breve:

LXC

LinuX Containers (LXC) es un método de virtualización a nivel de sistema operativo para ejecutar múltiples sistemas Linux aislados (contenedores) en un único host de control (host LXC)

https://wiki.archlinux.org/index.php/Linux_Containers

nivel bajo ...

https://linuxcontainers.org/

Estibador

  • por Docker, Inc
  • Un sistema de contenedores que utiliza contenedores LXC
  • para que pueda: Build, Ship, and Run Any App, Anywhere http://www.docker.com

LXD

Docker vs LXD

  • Docker se especializa en implementar aplicaciones
  • LXD se especializa en la implementación de máquinas virtuales (Linux)

Infografía de Docker vs LXD

Fuente: http://linux.softpedia.com/blog/infographic-lxd-machine-containers-from-ubuntu-linux-492602.shtml

Originalmente: https://insights.ubuntu.com/2015/09/23/infographic-lxd-machine-containers-from-ubuntu/

Nota técnica menor

clarity123
fuente
12
Docker no ha usado LXC debajo del capó desde 2014: blog.docker.com/2014/03/…
infomaniac
68

Esta imagen puede ayudarlo a comprender la principal diferencia entre ellos:

lxc x docker

Lo que todos tienen en común es que estas 3 tecnologías están relacionadas con los contenedores.

Los contenedores son un mecanismo de virtualización ligero que no requiere que configure una máquina virtual en una emulación de hardware físico. En Linux, lo que tienen en común son las características del Kernel utilizadas: cgroups, namespaces(ipc, network, user, pid, mount). También intentan crear entornos más seguros mediante la creación de contenedores sin privilegios y la integración con características de seguridad como selinux. Estas tecnologías exportan API para integrarse mejor con otros softwares.

LXD y LXC

Estos dos integran la misma familia donde:

  • lxc : interfaz de espacio de usuario para las características de contención del kernel de Linux. Este es el tipo que administra los espacios de nombres de Kernel, los perfiles de Apparmor y SELinux, Chroots, las capacidades de Kernel y todo lo demás relacionado con el kernel
  • lxd : es un contenedor "hipervisor". Está compuesto por un demonio (lxd), la interfaz de línea de comandos (lxc) y un complemento OpenStack. Este tipo fue desarrollado para proporcionar más flexibilidad y características a lxc, mientras que todavía lo usa bajo el capó.

Básicamente, se crea un espacio de usuario de SO autónomo con su infraestructura aislada. lxc subyace más directamente en las características del sistema operativo para redes y almacenamiento que Docker.

Usted crea muchas máquinas virtuales, que tienen espacio de usuario y aislamiento de kernel, pero no son máquinas virtuales completas ya que no están ejecutando kernels separados, ni están paravirtualizadas por la misma razón.

Canonical es el principal patrocinador aquí, y Oracle también está invirtiendo horas hombre en esta tecnología.

Estibador

Tiene algunas diferencias, siendo el mayor de ellos el motor que cierra las aplicaciones con un sistema de archivos autónomo en lugar de una "imagen de espacio de usuario" base. La idea es contener la aplicación y la imagen base para crear la impresión de que la aplicación es un proceso único dentro del motor. Docker usó la tecnología lxc como subyacente para comunicarse con el núcleo, pero hoy usa su propia biblioteca, libcontainer .

El sistema de archivos es una abstracción para Docker, mientras que lxc usa las funciones del sistema de archivos directamente. La red también es una abstracción, mientras que con lxc puede configurar direcciones IP y configuraciones de enrutamiento más fácilmente. Microsoft, Amazon, Vmware, IBM y otros jugadores mantienen algunos sitios "similares a la App Store".

Estibador. INC. Es el patrocinador principal aquí. Vmware también está invirtiendo en esta tecnología.

Tecnología de contenedores relacionada:

Estas son otras tecnologías de contenedor que tiene Linux: OpenVZ y Linux-VServer

Cosas relacionadas:

Luc
fuente
Sí. Eso es bastante nuevo ya que involucra todo ese zfs en Ubuntu wada-wada. Y eso es una PRESENTACIÓN. Esté siempre alerta a los archivos PDF o PPT donde haya mundos como "mejor que eso" o "tecnología más rápida" o "más escalable que Y" ...
55
He llegado a ser bastante escéptico sobre los productos que salen de Canonical. Tienden a publicitarlos como lo que podrían ser en lugar de como lo que son. A menudo, cuando ese "podría ser" todavía está a años de distancia.
orodbhen
En lugar de usar minúsculas lxc, esto debería ser una referencia a liblxc. Y en lo que respecta a las herramientas, puede referirse a 1.x a 3.x donde lxd (solo el demonio) solo está disponible para liblxc> = 2.0 y lxces el programa cliente LXD que es el sucesor del lxc-*nombre Herramientas LXC 1.x.
0xC0000022L