apt和snap安装的docker有什么区别

apt和snap安装的docker有什么区别

如果您计划在 Ubuntu 或基于 Debian 的系统上安装 Docker,那么您可以使用 APT 软件包管理器或 Snap(通用软件包安装程序)。 然而,Apt 和 Snap 的 Docker 有什么区别,我们在这里讨论一下。

推荐:如何在Windows 10/11上添加桌面垃圾桶以永久删除文件

包管理器:

我们先来简单了解一下Ubuntu的这两个包管理器。

apt(高级打包工具): 它是所有 Debian、Ubuntu 和其他类似 Linux 发行版系统上的默认包管理器。 APT 管理存储库并通过它们安装可用的 Debian 软件包(软件)。 它甚至可以安装本地可用的 Debian 二进制文件。

snap(SNAP 包管理器): 另一方面,Snap 是一个通用包管理器,因为它不仅限于 Ubuntu 或基于 Debian 的系统(如 APT)。 相反,我们可以在所有流行的 Linux 系统上配置和使用它,包括 RedHat 和 OpenSUSE。

这是可能的,因为 Snap 包是独立的,包含所有必要的依赖项,使它们独立于底层系统。 此外,Snap 的软件包也不依赖系统存储库,而是其开发人员 (Canonical) 创建了一个集中式 SNAP 存储,可以轻松分发和更新软件包。

因此,如果您使用 APT,那么 Docker 要么通过系统默认存储库安装,要么官方要求您手动添加。 而 Snap 会直接在其集中存储中搜索它来安装Docker

学习 – 如何在 Ubuntu Linux 上使用 SNAP 安装Docker

封装隔离:

现在,您知道什么是 APT 和 Snap,因此,如果您计划使用它们中的任何一个安装像 Docker 这样的软件包,那么就知道它将如何与系统交互。

易于:如果我们通过 APT 安装 Docker 或任何其他软件包,它将在系统范围内安装以供任何其他程序访问(如果需要)。 但是,有时,如果多个包需要同一库的不同版本,则可能会导致版本冲突和依赖性问题。

因此,举例来说,如果您已经使用系统存储库安装了 Docker,现在想要使用其官方存储库安装最新版本的 Docker,那么您必须首先完全删除以前的版本,否则将会出现问题。

折断:SNAP 软件包是隔离的,这意味着使用它安装的软件不会干扰主机系统或其他软件包。 由于沙盒环境,Snap 包与系统的其他部分隔离并包含自己的依赖项。 这种包配置提供了更好的稳定性,并避免了不同应用程序和库之间的冲突。 然而,这个功能并不是使用 Snap 安装 Docker 的基准,因为容器本身是在隔离的环境中运行的。

这也意味着我们可以在一个系统上安装同一软件的两个实例,一个使用 Apt,另一个通过 SNAP。

工作目录

APT与主机系统紧密集成,使用通用的系统目录来解压和安装包括Docker在内的软件包,这就是为什么我们安装后可以在下面找到它的可执行文件 /usr/bin/. 然而,对于 Snap 安装的软件包来说,情况并非如此,因为它使用沙箱环境,因此使用它配置的所有软件都将位于 〜/快照 目录,但有自己的目录。

因此,要启动或停止 Docker 服务,您不能使用默认值 系统控制 命令(如果使用 Snap 安装)。

Docker 的工作目录

更新:

易于:嗯,当涉及到使用APT更新已安装的软件包时,软件包将通过常规的系统更新命令进行更新。 但是运行它也会更新所有已安装的软件包,除非您手动阻止某些特定软件包的更新。

折断:在 SNAP 中,包的更新可以单独完成,这意味着如果您只想将 Docker 更新到最新版本而不是其他版本,那么我们可以这样做。 尽管默认情况下 Snap 守护程序设置为检查更新并定期在后台安装它们,但如果需要,我们可以禁用它。 执行此操作的命令是: snap refresh --hold 并再次启用自动更新服务,您可以使用 snap refresh --unhold

Docker 版本的可用性:

这是使用 Apt 或 Snap 安装 Docker 时的关键区别之一,因为通过 Ubuntu 和 APT 的默认系统存储库提供的 Docker 版本不是最新版本。 如果您想使用 APT 获得最新版本,那么我们需要在系统上手动添加官方 Docker 存储库。

然而,SANP 则不然,因为它的软件包通常由上游开发人员或维护人员维护和提供。 因此,您将直接从 SNAP 存储或命令行获得更广泛的 Docker 版本,包括最新版本。

到目前为止,我们已经了解了使用 APT 和 Snap 安装 Docker 包有什么区别,现在该使用哪一个呢?

如果您想使用 Docker 的本机系统工作目录和系统服务命令,则可以使用 APT 包管理器。 因为许多需要 Docker 的第三方应用程序如果使用 APT 安装,就可以轻松识别它。

然而,那些不想手动添加最新版本的官方 APT docker 存储库的人可以使用 SNAP 通过单个命令获取 Docker。

另外,通常 APT 安装的软件包速度更快,因为 Snap 使用压缩的 SquashFS 文件系统格式,因此当您使用 Snap 安装的软件时,系统需要对其进行解压缩,如果您的应用程序很大,则启动它系统可能需要一些时间与 APT 安装的时间相比。

推荐:如何在Amazon Linux 2023上安装Java 8/11


发表评论