如何在 Linux 上安装 Docker?
Docker 通过允许程序员将他们的应用及其所有依赖项打包成小型、轻量级的容器,完全改变了软件开发行业。这些容器将应用与底层操作系统分离,从而在各种环境中提供可靠的性能和轻松部署。
如果您是 Linux 用户,希望利用容器化技术,本章就是您的理想起点。您将能够使用本详细指南中解释的各种方法,在您的 Linux 系统上安装 Docker。我们将根据您的需求提供详细说明,无论您喜欢使用预构建包、下载 DEB 文件,还是使用便捷的安装脚本。
我们将详细讨论在 Linux 上安装 Docker 的以下方法 −
- 使用 apt 仓库安装
- 从包安装
- 使用便捷脚本安装
那么,让我们了解这些在 Ubuntu 上安装 Docker 的方法吧。
在 Linux 上安装 Docker 的前提条件
在开始 Docker 安装过程之前,请确保您的 Linux 系统满足前提条件。这将确保 Docker 安装过程顺利进行且以最佳方式完成。
使用 64 位架构 − Docker 在 64 位环境中运行最佳。您可以在终端中使用 uname -m 命令确认系统架构。如果您的系统是 32 位,直接安装 Docker 将很困难。不过,互联网上有针对特定用例的替代解决方案。
使用内核版本 3.10 或更高 − Docker 需要稳定的 Linux 内核才能按预期运行并达到最佳性能。您可以验证您使用的内核版本是否为 3.10 或更高。
您可以在终端中使用 uname -r 命令来检查。这将显示您的内核版本。如果需要更新,请查阅您发行版的文档以确定最佳操作步骤。
包管理 − 安装 Docker 的方法在很大程度上取决于您 Linux 发行版的包管理器。APT(Ubuntu/Debian)和 Yum(Red Hat/CentOS)是两个流行的例子。
如果您熟悉这些发行版,最好遵循特定于您发行版的安装指南。在本章中,我们将讨论 Ubuntu 的方法。根据其包管理器,其他 Linux 发行版可以使用类似命令。
其他注意事项
虚拟化支持 − 您应确保系统兼容硬件虚拟化技术,如 KVM,以获得更好的性能。这在执行特定容器化应用时尤为重要。
Sudo 访问权限 − 几乎所有安装方法都需要 sudo 访问权限,因此请确保您已准备好。
一旦满足这些要求,您就可以以最佳方式在 Linux 机器上安装 Docker。在接下来的部分中,我们将探讨不同的安装技术,请继续关注!
使用 APT 仓库安装 Docker
在首次在新主机上安装 Docker Engine 之前,重要的是要设置 Docker 仓库。之后,您就可以轻松从该仓库安装或更新 Docker。要设置 Docker 的 apt 仓库,您可以使用下面的命令集。
$ sudo apt-get update
$ sudo apt-get install ca-certificates curl
$ sudo install -m 0755 -d /etc/apt/keyrings $ sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc $ sudo chmod a+r /etc/apt/keyrings/docker.asc
下一步是将仓库添加到 Apt sources。
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc]
https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
注意 − 如果您使用的是 Ubuntu 的其他衍生版本,如 Linux Mint 等,您可能需要在上面的命令中将 VERSION_CODENAME 替换为 UBUNTU_CODENAME。
下一步是安装 Docker 软件包。要安装最新版本,您可以运行下面的命令 −
$ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
安装完成后,您可以通过运行 hello-world image 来验证安装是否成功。
$ sudo docker run hello-world
上面的命令会从 Docker 仓库下载 hello-world image 并运行与之关联的 container。它会打印一条消息然后退出。这验证了 Docker engine 在您的 Ubuntu 主机上的成功安装。
除了安装最新版本,您还可以使用下面的命令集安装特定版本的 Docker engine。第一个命令会列出适用于 Ubuntu 的可用 Docker 版本。
# 列出可用版本:
apt-cache madison docker-ce | awk '{ print $3 }'
然后,您可以将所需的版本设置到变量中,并使用下面的命令安装它。
$ VERSION_STRING=5:26.1.1-1~ubuntu.22.04~jammy $ sudo apt-get install docker-ce=$VERSION_STRING docker-ce-cli=$VERSION_STRING containerd.io docker-buildx-plugin docker-compose-plugin
从软件包安装 Docker
除了从 APT 仓库安装 Docker,您还可以手动下载特定发布版本的 deb 文件并安装它们。但在这种情况下,如果您想升级 Docker engine 版本,您将需要手动进行。
- 访问 https://download.docker.com/linux/ubuntu/dists/。
- 然后,从此列表中选择 Ubuntu 的版本。
- 然后,转到路径 - pool/stable 并选择您的 Linux 主机的架构(amd64, armhf, arm64 或 s390x)。
- 之后,您需要下载以下 deb 文件。
- containerd.io_<version>_<arch>.deb
- docker-ce_<version>_<arch>.deb
- docker-ce-cli_<version>_<arch>.deb
- docker-buildx-plugin_<version>_<arch>.deb
- docker-compose-plugin_<version>_<arch>.deb
- 下载这些文件后,您可以使用以下命令安装这些软件包。这也会自动启动 Docker daemon。
$ sudo dpkg -i ./containerd.io_<version>_<arch>.deb \ ./docker-ce_<version>_<arch>.deb \ ./docker-ce-cli_<version>_<arch>.deb \ ./docker-buildx-plugin_<version>_<arch>.deb \ ./docker-compose-plugin_<version>_<arch>.deb $ sudo service docker start
使用便捷脚本安装 Docker
您也可以使用 Docker 提供的便捷脚本安装 Docker,该脚本位于 https://get.docker.com/。这对于开发环境很有用,但不推荐用于生产环境。不过,它也适用于创建针对生产环境的自定义 provisioning 脚本。
以下是该脚本执行的操作及其 限制。
- 运行脚本需要 root 或 sudo 权限。
- 脚本会尽力识别您的 Linux 版本和发行版,并为您设置包管理器。
- 使用脚本无法更改大多数安装参数。
- 未经请求批准,软件会安装建议的软件和先决条件。根据主机当前配置,这可能会安装大量软件包。
- 默认情况下,脚本会安装最新稳定版本的 runc、containerd 和 Docker。如果使用此脚本为机器 provisioning,Docker 版本可能会意外大幅升级。在将升级部署到生产系统之前,应始终在测试环境中进行测试。
- 该脚本不用于升级已存在的 Docker 安装。使用脚本更新已存在安装时,依赖项可能不会更新到预期版本,导致版本过时。
$ curl -fsSL https://get.docker.com -o get-docker.sh $ sudo sh get-docker.sh
在基于 Debian 的发行版上,Docker engine 会自动启动。在基于 RPM 的发行版上,您可以使用 systemctl 或 service 命令手动启动它。
如何在 Linux 上卸载 Docker Engine?
在 Ubuntu 上卸载 Docker engine 很简单。您可以使用以下命令卸载 Docker 软件包,然后删除所有配置、image、container 等。
$ sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
$ sudo rm -rf /var/lib/docker $ sudo rm -rf /var/lib/containerd
结论
您现在已成功在 Linux 机器上安装了 Docker Engine。在本全面指南中,您学习了如何从 APT repository 安装 Docker、通过下载软件包安装,以及使用便捷脚本安装。
您可以选择最适合自己需求的方法。我们还解释了完全卸载 Docker Engine 的步骤,以防您想移除它或安装不同版本。
常见问题解答
Q1. Docker 对 Linux 是免费的吗?
是的,独立开发者和爱好者可以使用 Docker 的免费社区版。此版本包含创建、运行和维护 container 的所有基本功能。
Docker 的免费版非常适合刚开始使用 Linux 的人,而订阅计划则提供额外功能,如私有 registry 和企业支持。
Q2. Docker 需要多少 RAM?
您运行的 container 的复杂程度将决定 Docker 需要多少内存。为基本 Docker 使用预留至少 2GB RAM 是一个合理的经验法则。但在 container 内使用大量内存的应用程序可能需要更多。
请监控系统使用的 RAM 量,并根据需要调整分配。
Q3. Docker 是虚拟机 (VM) 吗?
不是,虚拟机 (VM) 和 Docker container 之间存在一些显著差异。Docker container 共享主机的 kernel,而虚拟机 (VM) 模拟整个操作系统。因此,container 更轻量,并且启动速度比虚拟机更快。
可以将虚拟机 (VM) 视为计算机内的完整计算机,而 container 则是共享相同资源的独立进程。
Q4. Docker 适合初学者吗?
虽然 Docker 有一定的学习曲线,但其基本概念相当简单。网上有大量针对初学者的资源和教程。Docker 可将应用程序及其依赖项打包成独立单元,从而有助于优化开发流程。
初学者只需稍作努力,即可利用 Docker 的功能来提升开发体验。
Q5. Docker 最佳的 Linux 操作系统是哪一个?
大多数流行的 Linux 发行版,包括 Fedora、Ubuntu、Debian 和 CentOS,都对 Docker 提供良好支持。“最佳”操作系统取决于您的舒适度和偏好。如果您是 Linux 新手,Ubuntu 是一个广受欢迎且以用户友好著称的选择。
最终,Docker 应兼容任何具有强大包管理器的现代 Linux 发行版。