qual é a principal diferença entre o Docker e o Snap?

49

Em recente c't (infelizmente paywalled ) há um artigo sobre Snap e Flatpak.

Isso soa muito semelhante ao Docker, muitos conceitos são os mesmos. Agora minha pergunta qual é a diferença entre Snap e Docker? Esses casos de uso são diferentes?

    
por Fyodor Glebov 05.08.2016 / 17:31

1 resposta

60

Você pode encontrar a palestra de Mark Shuttleworth "Por que precisamos de um contêiner diferente apenas para aplicativos" no Container Camp relevante a sua pergunta. Ele fala geralmente sobre VMs, contêineres e Docker no início, continuando com snaps e como eles se encaixam em cerca de nove minutos. Aqui está meu resumo:

  • Diferentes tipos de contêineres têm a mesma aparência, mas são usados para finalidades diferentes.
  • Os contêineres não existem realmente no nível do kernel. Diferentes tipos de ilusões são possíveis. Independentemente, podemos criar ilusões sobre quais usuários, rede, disco e processos um contêiner vê.
  • Diferentes tipos de contêineres são, na verdade, sobre diferentes classes de ilusões criadas.
  • Os snaps são:
    • Imutável, mas ainda faz parte do sistema básico.
    • Integrado em termos de rede, compartilhe o endereço IP do sistema, ao contrário do Docker, em que cada contêiner recebe seu próprio endereço IP.
    • Em outras palavras, o Docker nos dá uma coisa . Snaps nos dá uma coisa aqui . Por exemplo, em um desktop, um instantâneo fornece um aplicativo diretamente.
    • Um piscar de olhos não pode poluir o resto do sistema. Está na sua própria caixa. Mas ainda pode ver (somente leitura) o resto do sistema, o que permite que ele fale e se integre ao sistema.

Você perguntou sobre diferentes casos de uso em comparação ao Docker. Aqui está um que os snaps podem fazer, mas o Docker não pode: aplicativos de desktop. Terceiros podem enviar aplicativos de desktop usando snaps e os usuários podem instalá-los e atualizá-los facilmente. Um contêiner do Docker não pode (facilmente) interagir com o usuário graficamente na tela, carregar documentos do diretório pessoal do usuário ou fornecer videoconferência através da webcam do usuário. Snaps podem (uma vez dada permissão).

Você pode perguntar como isso é melhor do que usar os PPAs. Mas, em comparação com o Docker, é como perguntar como o Docker é melhor do que instalar manualmente dependências em um sistema. É melhor, mas exatamente como provavelmente seria melhor respondida em uma pergunta separada e não específica do Docker.

    
por Robie Basak 06.01.2017 / 16:32