Qual è la differenza principale tra Docker e Snap?


85

Nel recente c't (purtroppo paywalled ) c'è un articolo su Snap e Flatpak.

inserisci qui la descrizione dell'immagine

Sembra molto simile a Docker, molti concetti sono gli stessi. Ora la mia domanda qual è la differenza tra Snap e Docker? Sono diversi casi d'uso?

Risposte:


110

Potresti trovare il discorso di Mark Shuttleworth "Perché abbiamo bisogno di un contenitore diverso esclusivamente per le app" nel Container Camp pertinente alla tua domanda. Parla generalmente di VM, container e Docker all'inizio, continuando con gli snap e come si adattano in circa nove minuti. Ecco il mio riassunto:

  • Diversi tipi di contenitori sembrano uguali ma vengono utilizzati per scopi diversi.
  • I container non esistono davvero a livello di kernel. Sono possibili diversi tipi di illusioni. Indipendentemente, possiamo creare illusioni su ciò che gli utenti, la rete, il disco e i processi vedono un container.
  • Diversi tipi di contenitori riguardano in realtà classi diverse delle illusioni che vengono create.
  • Gli snap sono:
    • Immutabile, ma comunque parte del sistema di base.
    • Integrato in termini di rete, quindi condividi l'indirizzo IP del sistema, a differenza di Docker, dove ogni contenitore ottiene il proprio indirizzo IP.
    • In altre parole, Docker ci dà una cosa . Gli snap ci danno qualcosa qui . Ad esempio, su un desktop, uno snap fornisce un'app direttamente su di essa.
    • Uno snap non può inquinare il resto del sistema. È nella sua scatola. Ma può ancora vedere (sola lettura) il resto del sistema, il che gli consente di parlare e integrarsi con il sistema.

Hai chiesto diversi casi d'uso rispetto a Docker. Ecco uno che gli snap possono fare, ma Docker no: app desktop. Le terze parti possono spedire app desktop usando gli snap e gli utenti possono installarle e aggiornarle facilmente. Un contenitore Docker non può (facilmente) interagire graficamente con l'utente sullo schermo, caricare documenti dalla home directory dell'utente o fornire videoconferenze tramite la webcam dell'utente. Gli snap possono (una volta concessa l'autorizzazione).

Potresti chiedere in che modo è meglio che usare i PPA. Ma rispetto a Docker, è come chiedere come Docker sia migliore dell'installazione manuale delle dipendenze su un sistema. È meglio, ma esattamente come sarebbe probabilmente meglio rispondere in una domanda separata, non specifica per Docker.


3
Questo non è vero. Docker può interagire con le applicazioni desktop (una volta concessa l'autorizzazione). github.com/jamrizzi/docker-gtk
Jam Risser

2
Sembra Sandboxie per Windows. I programmi in modalità sandbox possono aprire finestre di dialogo, accedere a tutti i file locali, ma quando scrivono, scrivono semplicemente nella loro sandbox.
feedc0de,

1
Che cosa fa quello strumento che colleghi a fare diversamente da una normale finestra mobile? È possibile montare la presa x11 nella finestra mobile senza alcuna versione speciale della finestra mobile.
feedc0de,

1
Non è uno strumento, è una dimostrazione
Jam Risser,

1
@jamrizzi Sembra che ciò che fai sia semplicemente fornire l'accesso docker al socket X11 in uno script. Questo è abbastanza lontano dal coinvolgimento dell'utente in questo processo (dov'è il dialogo "Docker vuole accedere al display. Annullare o consentire?")
Thorbjørn Ravn Andersen
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.