通过 apt 安装 Docker 还是通过 snap 安装 Docker?

kru*_*ion 13 apt docker snap

我开始构建自己的媒体服务器,它将使用 Docker 来处理不同的包。主要有Plex、Radarr等。

虽然我之前接触过一些 Linux,但我从来不知道snapalways 使用的是什么apt

现在我开始阅读它,我可以看到某些用途的吸引力,主要用于测试和自包含程序,例如 GIMP。

然而,我对 Docker 感到困惑,因为它将自己的容器连接到其他容器,然后连接到系统。snap如果我通过安装Docker 容器,这是否意味着 Docker 容器位于容器内snap

snapDocker之间有什么明显的区别吗apt?有什么功能上的区别吗?我稍后可能会遇到任何使用差异?

也就是说,如果我收到一台安装了 Docker 的计算机,我的使用情况会有所不同还是都一样?

我读到有人说snap有时启动速度较慢,但​​除此之外,还有什么区别吗?

Art*_*ild 13

snap根据我的经验和观点,使用 Docker与安装使用 Docker 不会有太大区别apt。然而重要的是,您选择其中之一,因为它们不能真正共存。至于解决你的一些具体问题:

如果我通过 snap 安装它,这是否意味着 docker 容器位于 snap 容器内?

在某种程度上这是真的。相反,Docker 容器在隔离的环境中运行。然而,snap抽象是相当透明的,所以我不认为性能上有任何实际差异。

docker 的 snap 和 apt 之间有什么明显的区别吗?有什么功能上的区别吗?我稍后可能会遇到任何使用差异?

最大的区别可能在于数据的包含。从 Snapcraft Docker 页面:

此版本只能访问主目录中的文件。因此 Dockerfile 以及 docker build、docker save 和 docker load 等命令中使用的所有其他文件都需要位于 $HOME 中。

因此默认情况下,该snap版本只会访问 中的文件$HOME,而该apt版本可以访问任何地方的文件。

正如您还提到的,snaps可能会影响启动和加载时间 - 但主要是在较旧的系统上。在具有 SSD 磁盘的较新系统上,这不应该是问题。

此外,运行该snap版本时,运行的 Docker 服务 ( docker.service) 在系统上不直接可见。这意味着对 systemd 服务的任何微调都不可能达到与版本相同的程度apt

最后,snap应用程序会自动更新,默认情况下可以选择回退到最后两个版本。您可能喜欢也可能不喜欢这个。

截至 2022 年 3 月 31 日,对于 Ubuntu 20.04 Focal,Dockerapt版本为 20.10.7,而snap版本为 20.10.12。

作为参考,官方 Docker 存储库的最新版本是 20.10.14。因此,如果您想要绝对最新的版本,建议apt官方 Docker 存储库作为软件包安装。

结论

总体而言,无论您选择哪种安装选项,Docker 的基本功能都是相同的(抛开数据包含、服务控制和可能的次要版本差异)。和snap版本apt通常都应该适合生产使用,但该apt版本将允许更多的低级控制和定制的可能性。