Docker 席卷了软件工程行业,它不仅彻底改变了我们运输和部署软件的方式,而且还改变了工程师在其计算机上设置软件开发环境的方式。本篇文章向您展示如何通过在 Ubuntu Linux(Focal Fossa)上安装 Docker 来开始使用,Ubuntu Linux 20.04(Focal Fossa)是在撰写本文时最新的 Ubuntu 长期支持(LTS)版本。
Docker 的优势
Docker 是一个开放源代码平台,可让您将应用程序自动化和部署为称为容器的独立程序包。 Docker 使用操作系统虚拟化技术,但与虚拟机不同,它在系统资源上要轻得多。
Docker 主要优点包括:
相对易于使用和学习
提供一致且轻松的软件部署方式
兼容微服务架构
资源使用情况很轻
设置 Docker 软件存储库
有几种安装 Docker 的方法,本指南将向您展示如何使用 apt 命令实用程序从 Docker 存储库中安装 Docker。以这种方式安装 Docker 可以使您将来轻松升级 Docker 软件包,这也是 Docker 团队推荐的方法。
安装的第一步是将 Docker 软件存储库添加到您的软件源列表中。 您将通过 HTTPS 使用 Docker 软件存储库,然后使用以下命令安装所需的软件。
最佳做法是,首先更新可用软件包的列表。
1
|
sudo apt update
|
然后,使用 apt install 下载安装所需的所有依赖项。
1
|
sudo apt install apt–transport–https ca–certificates curl gnupg lsb–release
|
Docker 软件使用 GnuPG(也称 为GPG)来确保从存储库下载软件包时的通信安全。 GPG 是用于加密消息或数据的 PGP(非常好的隐私)的实现标准。
要将官方 Docker GPG 密钥添加到本地密钥环,请使用以下命令。
1
|
curl –fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg –dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
|
Docker 在其软件存储库中有三个主要的软件发行版:稳定版,测试版和夜间发行版。 本指南将讨论 Docker 的稳定发行版。
运行以下命令以使用稳定的存储库发行版 Docker。
1
|
echo “deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable” | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
|
注意:上述命令假定您使用的是 AMD 体系结构。 如果碰巧使用的是 ARM 体系结构,则可以将上面命令中的 arch = amd64 替换为 arch = arm64,如果使用 arm hard float,则可以替换为 arch = armhf。
安装 Docker 引擎
现在,您已经设置了 Docker 软件存储库,您可以继续安装 Docker Engine,它是管理和运行 Docker 容器的核心。 组成 Docker 引擎的其他重要组件包括 Docker Client,容器化,runc 和 Docker 守护程序。
确保使用以下命令更新软件包源,因为您最近已将 Docker 存储库添加到软件源列表中。
1
|
sudo apt update
|
要安装 Docker Engine,请运行以下命令。 默认情况下,该命令将安装最新的稳定版 Docker Engine。
1
|
sudo apt–get install docker–ce docker–ce–cli containerd.io
|
如果要安装某些特定版本的 Docker,可以首先使用以下命令检查可用版本的列表。
1
|
apt–cache madison docker–ce
|
然后,您可以使用以下命令安装特定版本的 Docker。 例如,要安装 5:20.10.6〜3-0〜ubuntu-focal:
1
|
sudo apt–get install docker–ce=5:20.10.6~3–0~ubuntu–focal docker–ce–cli=5:20.10.6~3–0~ubuntu–focal containerd.io
|
确认安装
要检查 Docker 是否已成功安装,可以运行以下命令,它将输出已安装的 Docker Engine 的版本号。
1
|
docker –v
|
在 Ubuntu Linux 和大多数基于 Debian 的发行版中,Docker 服务将在系统启动时自动启动。
您可以尝试运行 hello-world Docker 映像来测试安装。 由于该映像在您的计算机上本地不可用,因此系统将从 Docker Hub(包含容器映像的库)下载该映像。 下次您再次运行该映像时,它将使用计算机上的本地副本。
1
|
sudo docker run hello–world
|
以非 root 用户身份运行 Docker
目前,您只能以超级用户身份运行 Docker 容器,这就是为什么在上面的命令中使用 sudo 的原因。 Docker 守护程序绑定到 Unix 套接字,默认情况下,该套接字是 root 用户拥有的,非 root 用户只能通过 sudo 访问它。
为了能够以超级用户身份运行 Docker 容器和其他重要命令,您首先需要创建一个名为 docker 的用户组,然后将该用户添加到计算机上的 docker 组。 groupadd 命令负责在 Linux 中管理用户组。
1
|
sudo groupadd docker
|
1
|
sudo usermod –aG docker $USER
|
使用以下命令激活组更改。
1
|
newgrp docker
|
注意:请记住注销并重新登录,以便系统识别新创建的组成员身份。 您可以使用以下命令注销。
1
|
gnome–session–quit
|
在某些情况下,如果仍然无法以非 root 用户身份执行 Docker 命令,则可能需要重新启动计算机。
卸载 Docker
要从 Ubuntu Linux 删除或卸载 Docker Engine,只需运行以下命令。
1
|
sudo apt remove docker docker–engine docker.io containerd runc
|
尽管已删除 Docker Engine,但不会自动删除与 Docker 相关联的其他文件,例如图像,容器,卷或自定义配置文件。 您可以使用 rm 实用程序删除这些文件。
1
|
sudo rm –rf /var/lib/docker
|
1
|
sudo rm –rf /var/lib/containerd
|
实践中的 Docker
本指南向您展示如何在 Ubuntu Linux 上安装和配置 Docker。 此外,它还向您展示了如何运行从 Docker Hub 获取的简单 Docker 映像。
Docker 是一种非常通用的工具,在软件工程中有很多用例。 如果您是软件工程师或在 DevOps 中工作,则 Docker 将简化您在不同环境中部署软件的方式,对于测试和制作软件原型非常有用。