Snap 与系统容器

Chr*_* G. 9 lxc snap

我看到过:Docker 和 Snap 之间的主要区别是什么?

我不太明白快照和系统容器之间的区别。

  • VM具有独立的Linux内核,并通过虚拟机管理程序使用固定的主机资源。
  • Linux Container(系统容器,复用/共享内核,使用动态主机资源。
  • Docker不共享内核,而是通过一个docker恶魔(早期的docker使用Linux容器)来动态分配资源。

Snap 适合虚拟机和 Linux 容器吗?从某种意义上说,它不仅共享内核,而且更多地共享主机系统,而不是使用虚拟机管理程序安装完全不同的操作系统?

更新:Snap 是一个沙箱,可以对主机系统进行中介访问。

Art*_*ild 14

我认为 Container Camp 2016 上 Mark\xe2\x80\x99s 演示文稿中的这张幻灯片在一张图片中解释了很多内容,并且对我来说很有意义:

\n

在此输入图像描述

\n

视频链接:为什么我们需要一个纯粹用于应用程序的不同容器 - Mark Shuttleworth (Canonical) - YouTube

\n

简而言之:

\n
    \n
  • LXC/LXD 是 \xe2\x80\x9c 机器容器\xe2\x80\x9d,具有像 VM 一样工作的持久文件系统
  • \n
  • Docker 是 \xe2\x80\x9c 进程容器\xe2\x80\x9d,在静态映像上具有覆盖文件系统(具有持久存储选项)
  • \n
  • Snap 是 \xe2\x80\x9c 应用程序容器\xe2\x80\x9d,直接扩展底层主机的功能
  • \n
\n

我的个人经历:

\n
    \n
  • 我主要将 Docker 用于家庭网络上的所有不同 Web 服务(UniFi、Grafana/Prometheus、Bookstack、Nextcloud、Syncthing、Transmission、Proxy Manager、Iperf3 等),因为 Docker 特别适合隔离数据和公开端口不同的服务。

    \n
  • \n
  • 如果我需要 \xe2\x80\x9cVM\xe2\x80\x9d 之类的功能(我需要安装将持续存在于容器中的自定义包),我会看看 LXC/LXD。

    \n
  • \n
  • 我对快照有复杂的感觉,我认为这完全取决于您的用例。对于那些以 snap 形式正式分发的应用程序,它们可能是值得的(例如 LXD 或 Multipass,它们都是官方 Canonical snap)。至少可以说,第 3 方快照的质量可能参差不齐。

    \n
  • \n
\n