apa perbedaan utama antara Docker dan Snap?

85

Dalam c't baru-baru ini (sayangnya paywalled ) ada artikel tentang Snap dan Flatpak.

masukkan deskripsi gambar di sini

Ini terdengar sangat mirip dengan Docker, banyak konsep yang sama. Sekarang pertanyaan saya apa perbedaan antara Snap dan Docker? Apakah perbedaan kasus penggunaan itu?

Ivanov
sumber

Jawaban:

110

Anda mungkin menemukan pembicaraan Mark Shuttleworth "Mengapa kami membutuhkan wadah yang berbeda untuk aplikasi" di Container Camp yang relevan dengan pertanyaan Anda. Dia berbicara tentang VM, container, dan Docker secara umum pada awalnya, melanjutkan ke terkunci dan bagaimana mereka masuk dalam waktu sekitar sembilan menit. Berikut ini ringkasan saya:

  • Berbagai jenis wadah terlihat sama tetapi digunakan untuk tujuan yang berbeda.
  • Wadah tidak benar-benar ada di tingkat kernel. Berbagai jenis ilusi dimungkinkan. Secara mandiri kita dapat membuat ilusi tentang apa yang dilihat pengguna, jaringan, disk, dan proses yang dilihat suatu wadah.
  • Berbagai jenis wadah benar-benar tentang kelas ilusi yang berbeda yang dibuat.
  • Terkunci adalah:
    • Tidak berubah, tetapi masih bagian dari sistem dasar.
    • Terintegrasi dalam hal jaringan, jadi bagikan alamat IP sistem, tidak seperti Docker, di mana setiap wadah mendapatkan alamat IP-nya sendiri.
    • Dengan kata lain, Docker memberi kita sesuatu di sana . Terkunci memberi kita sesuatu di sini . Misalnya, pada desktop, snap menyediakan aplikasi tepat di atasnya.
    • Sebuah snap tidak dapat mencemari seluruh sistem. Itu di kotaknya sendiri. Tetapi masih dapat melihat (hanya baca) sisa sistem, yang memungkinkannya untuk berbicara dan berintegrasi dengan sistem.

Anda bertanya tentang berbagai kasus penggunaan dibandingkan dengan Docker. Ini adalah salah satu yang dapat dikunci, tetapi Docker tidak dapat: aplikasi desktop. Pihak ketiga dapat mengirimkan aplikasi desktop menggunakan snaps, dan pengguna dapat dengan mudah menginstal dan memperbaruinya. Wadah Docker tidak dapat (dengan mudah) berinteraksi dengan pengguna secara grafis di layar, memuat dokumen dari direktori home pengguna, atau menyediakan konferensi video melalui webcam pengguna. Terkunci bisa (sekali diberi izin).

Anda mungkin bertanya bagaimana ini lebih baik daripada menggunakan AKP. Tetapi dibandingkan dengan Docker, itu seperti menanyakan bagaimana Docker lebih baik daripada menginstal dependensi pada sistem dengan tangan. Itu lebih baik, tetapi bagaimana tepatnya jawaban terbaik dalam pertanyaan yang terpisah dan tidak khusus untuk Docker.

Robie Basak
sumber
3
Ini tidak benar. Docker dapat berinteraksi dengan aplikasi desktop (setelah diberi izin). github.com/jamrizzi/docker-gtk
Jam Risser
2
Ini terdengar seperti Sandboxie untuk windows. Program kotak pasir dapat membuka dialog, mengakses semua file lokal, tetapi ketika mereka menulis, mereka hanya menulis ke kotak pasir mereka.
feedc0de
1
Alat apa yang Anda tautkan berbeda dengan buruh pelabuhan biasa? Anda dapat memasang soket x11 Anda ke docker tanpa versi docker khusus.
feedc0de
1
Ini bukan alat, ini demonstrasi
Jam Risser
1
@jamrizzi Sepertinya yang Anda lakukan hanyalah memberi buruh pelabuhan akses ke soket X11 dalam sebuah skrip. Ini masih jauh dari melibatkan pengguna dalam proses ini (di mana dialog "Docker ingin mengakses Display. Batalkan atau Izinkan?"?)
Thorbjørn Ravn Andersen