Qual é a diferença entre Docker, LXD e LXC [fechado]

164

Qual é a diferença entre Docker, LXD e LXC. Eles oferecem os mesmos serviços ou diferentes.

Ijaz Ahmad Khan
fonte
1
Achei este útil. informações mais recentes e melhores. pessoas.canonical.com/~kirkland/…
Ijaz Ahmad Khan
Uma explicação muito boa em infoworld.com/article/3204171/linux/… . Ele mencionou que Although Docker started out as an open source project to build specialized LXC, it later morphed into its own container runtime environmentmais no link
Alireza Fattahi

Respostas:

133

Não, LXC, Docker e LXD não são exatamente iguais. Em resumo:

LXC

O LinuX Containers (LXC) é um método de virtualização em nível de sistema operacional para executar vários sistemas Linux isolados (contêineres) em um único host de controle (host LXC)

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

nível baixo ...

https://linuxcontainers.org/

Docker

  • por Docker, Inc
  • um sistema de contêineres que utiliza contêineres LXC
  • para que você possa: Build, Ship, and Run Any App, Anywhere http://www.docker.com

LXD

Docker vs LXD

  • O Docker é especializado na implantação de aplicativos
  • A LXD é especializada na implantação de máquinas virtuais (Linux)

Infográfico de Docker vs LXD

Fonte: 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 secundária

clarity123
fonte
12
O Docker não usa o LXC sob o capô desde 2014: blog.docker.com/2014/03/…
infomaniac
68

Esta imagem pode ajudá-lo a entender a principal diferença entre eles:

lxc x docker

O que todos eles têm em comum é que todas essas três tecnologias estão relacionadas a contêineres.

Os contêineres são um mecanismo de virtualização leve que não exige que você configure uma máquina virtual em uma emulação de hardware físico. No Linux, o que eles têm em comum são os recursos do Kernel usados: cgroups, namespaces(ipc, network, user, pid, mount). Eles também tentam criar ambientes mais seguros, criando contêineres sem privilégios e integrando recursos de segurança como selinux. Essas tecnologias exportam APIs para se integrar melhor a outros softwares.

LXD e LXC

Esses dois integram a mesma família em que:

  • lxc : interface de espaço de usuário para os recursos de contenção do kernel do Linux. Este é o cara que gerencia os namespaces do Kernel, os perfis Apparmor e SELinux, Chroots, recursos do Kernel e todos os outros itens relacionados ao kernel
  • lxd : é um "hypervisor" de contêiner. É composto por um daemon (lxd), a interface da linha de comandos (lxc) e um plug-in do OpenStack. Esse cara foi desenvolvido para fornecer mais flexibilidade e recursos ao lxc, enquanto ele ainda o usa oculto.

Basicamente, um espaço de usuário de sistema operacional independente é criado com sua infraestrutura isolada. O lxc é subjacente mais diretamente aos recursos do sistema operacional para rede e armazenamento do que o Docker.

Você cria muitas máquinas virtuais, que possuem isolamentos no espaço do usuário e no kernel, mas não são máquinas virtuais completas, pois não executam kernels separados, nem são paravirtualizadas pelo mesmo motivo.

A Canonical é o principal patrocinador aqui, e a Oracle também está investindo horas de trabalho nessa tecnologia.

Docker

Existem algumas diferenças, sendo a maior delas o mecanismo que agrupa os aplicativos com um sistema de arquivos independente, em vez de uma "imagem de espaço do usuário" base. A idéia é conter o aplicativo e a imagem base para criar a impressão de que o aplicativo é um processo único dentro do mecanismo. O Docker usou a tecnologia lxc como base para se comunicar com o kernel, mas hoje ele usa sua própria biblioteca, o libcontainer .

O sistema de arquivos é uma abstração para o Docker, enquanto o lxc usa os recursos do sistema de arquivos diretamente. A rede também é uma abstração, enquanto com o lxc você pode configurar endereços IP e configurações de roteamento mais facilmente. Alguns sites "semelhantes à App Store" estão sendo mantidos pela Microsoft, Amazon, Vmware, IBM e outros players.

Docker. INC. É o principal patrocinador aqui. A VMware também está investindo nessa tecnologia.

Tecnologia de contêineres relacionados:

Estas são outras tecnologias de contêiner que o Linux possui: OpenVZ e Linux-VServer

Coisas relacionadas:

Luc
fonte
Sim. Isso é bastante novo, pois envolve todo o zfs no Ubuntu wada-wada. E isso é uma APRESENTAÇÃO. Allways estar alerta para PDFs ou PPTs onde existem mundos como "melhor do que isso" ou "tecnologia de mais rápido" ou "mais escaláveis do que Y" ...
5
Tornei-me bastante cético em relação aos produtos que saem da Canonical. Eles tendem a publicitá-los como o que podem ser e não como o que são. Muitas vezes, quando esse "pode ​​ser" ainda está a anos de distância.
orodbhen
Em vez de usar lxc em minúsculas, isso deve ser uma referência ao liblxc. E no que diz respeito ao ferramental, ele pode se referir a 1.x a 3.x, em que lxd (apenas o daemon) está disponível apenas para liblxc> = 2.0 e lxcé o programa cliente LXD que é o sucessor do lxc-*nomeado Ferramentas do LXC 1.x.
0xC0000022L