如何在 Ubuntu 20.04 上安装 Docker(简单指南)
Docker 是“平台即服务”产品和服务的组合,它使用操作系统虚拟化来提供称为容器的软件包中的软件。
容器包含应用程序、工具或服务运行所需的所有内容,包括所有库、依赖项和配置文件。容器也彼此隔离(以及底层主机系统),但可以通过预定义的通道进行通信。
这个 Docker 简介视频将为您提供该技术及其工作原理的快速概览:
由于 Docker 是开源软件,因此它不仅可以免费使用,而且可以免费调整、扩展、破解或构建。在本指南中,我介绍了在 Ubuntu 20.04 LTS (Focal Fossa) 上安装 Docker,但相同的步骤也适用于旧版本的 Ubuntu,包括 Ubuntu 18.04 LTS。
在这篇文章中,您将了解如何从常规 Ubuntu 存储库安装 Docker、如何使 Docker 在系统启动时自动启动,以及如何安装 Docker 映像并在本地运行它们。
但这并不是一个深入的研究。本教程特意简短明了。这样你就可以花更少的时间阅读,花更多的时间做事。
从 Ubuntu 存储库安装 Docker
在 Ubuntu 20.04 上安装 Docker 有两个硬性要求:
您需要拥有
sudo
访问权限您需要连接到互联网
如果您正在管理或设置 Ubuntu 服务器,那么您(可能)已经满足这两个要求,但请在开始之前进行检查。
第 1 步:从 Ubuntu 存储库在 Ubuntu 上安装 Docker。使用apt
命令和docker.io
软件包名称执行此操作(注意:软件包名称不是只是“docker”):
sudo apt install docker.io
Ubuntu 将从其档案中下载最新版本的 Docker,解压它,并将其安装在您的系统上。
第2步:让Docker在系统启动时自动启动:
sudo systemctl enable --now docker
第 3 步:测试它。
现在 Docker 已安装并运行,您应该验证一切是否正常工作。这可以使用 hello-world
应用程序来完成。从命令行运行:
sudo docker run hello-world
当您运行此命令时,您将看到一条很长的消息,通知您“安装似乎运行正常”。
但仔细看看这条消息:
您会在开始时注意到一些有趣的事情:Docker“无法找到”“hello-world”图像。但它没有退出,而是从 Docker Hub 搜索并下载了它。
这将我们引向……
第 4 步:查找并安装 Docker 映像。
现在您已经将世界(或者更确切地说是 Docker 生态系统)设置为您的牡蛎,而 Docker Hub 就是您的停靠港。 Docker Hub 被誉为“世界上最大的容器镜像库和社区”。 Docker Hub 上可用的任何映像也可以安装在您的系统上。
让我们看看如何做到这一点。
要在 Docker Hub 上搜索映像,请运行带有 search
子命令的 docker
命令,如下所示:
sudo docker search term-goes-here
例如,我想在 Docker Hub 上搜索 Alpine Linux,因此我运行 docker search alpine
。将出现一个匹配图像列表(与术语 alpine
匹配)。我想要官方 Alpine 图片,因此我在官方
列中查找单词确定
当您找到要使用的映像时,可以使用 pull
子命令下载它,例如,要安装 Alpine Linux,我运行 sudo docker pull alpine
.
要运行下载的映像,您需要添加 run
子命令和映像名称,例如 sudo docker run alpine
。
如果您想将映像作为容器运行并获得即时“交互式终端”shell 访问权限,请添加 -it
标志。例如:我运行 sudo docker run -it alpine ,它直接将我放入 Alpine 容器中,准备工作:
要退出“交互式终端”,请输入单词 exit
并按 Enter 键。
查看 Docker 文档页面,了解有关如何使用、管理、管理和维护容器的更多信息。
需要了解的一些有用命令包括 docker ps -a 列出您使用过的所有映像(并查看其容器 ID/名称); docker stop {container id}
关闭镜像;当您使用完容器后,使用 docker rm
命令将其删除,并在末尾再次添加容器 ID/名称。
更进一步
在本指南中,我们研究了在 Ubuntu 20.04 上安装 Docker 并安装官方映像。但这只是 Docker 的开始。
一种可能的探索途径是无根安装 Docker。这是一项实验性功能,目前还不容易启用。但如果您担心安全性和稳定性,那么设置它所需的努力是值得的。
如果您想查看类似的主题教程(无论是 Docker 相关的还是其他方面的),请在评论中或通过我常用的电子邮件留言。