在Ubuntu上安装docker时,为什么不像apt-get install docker那么简单?

jor*_*fus 3 ubuntu gpg repository apt docker

我已经按照 docker 网站上的说明在 Ubuntu 上安装了 docker 十几次(7 个命令,包括删除旧版本、添加 gpg 钥匙串等)。我总是直接通电,但今天我停下来想知道为什么这不仅仅是一个命令。apt 肯定足够聪明,可以做到这一切。当然,我通过肌肉记忆安装的数百个其他软件包并不更难管理。

这是一个关于官方 apt repo 注册如何工作、docker 有何不同以及哪些历史或业务决策导致 docker install 需要十几个步骤而不是一个步骤的问题。

Ale*_*lke 8

自从我写这篇文章以来,至少有两个新版本:snap 版本 ( ),它运行良好,但不是最新的,并且不支持Docker Desktopsudo snap install docker支持的所有功能。


根据您的需要,您可以使用默认的 Ubuntu 版本:

apt-get install docker.io
Run Code Online (Sandbox Code Playgroud)

可用包的列表是:

$ apt-cache search docker
[...snip...]
docker - transitional package
docker-clean - simple Shell script to clean up the Docker Daemon
docker-compose - define and run multi-container Docker applications with YAML
docker-doc - Linux container runtime -- documentation
docker-registry - Docker toolset to pack, ship, store, and deliver content
docker.io - Linux container runtime
[...snip...]
Run Code Online (Sandbox Code Playgroud)

该方法的主要问题是您可能会得到稍旧的版本。Ubuntu 操作系统发布后,大多数软件包的版本不会更改。您只会获得重要的 CVE 和其他安全修复程序。这是因为升级到新版本是非常复杂的,而且不可能破坏系统的许多其他部分(即不兼容的库、代码可能是 SEGV 等)。Gentoo 的做法是,为了避免这个问题,重新编译所有内容(所有内容)依赖项)。

因此 Docker 提供了一种安装最新版本的方法。这意味着您可以访问他们自己的软件包存储库,并且为了做到这一点,您还需要执行一些步骤来在您的计算机上进行设置。这包括将存储库信息添加到您的系统中。apt-get独自无法找到所有数据。

因此,如果您需要具有所有附加功能的最新版本的 Docker,则需要遵循这 7 个步骤(如上所述,您可以编写一个脚本,或者更好的是从 Docker 网站下载脚本)。否则,您可以只安装 Ubuntu 操作系统附带的版本。


附带说明一下,对于 Java,Oracle 使用不同的方法,即提供一个小包,可以下载任何版本的最新版本。dpkg这对他们来说是一个相当复杂的方法,因为在他们的例子中,他们几乎取代了(因此)提供的所有逻辑apt-get