返回博客

在 CentOS 7 上安装和设置 Docker

在 CentOS 7 上安装和设置 Docker

介绍

Docker 是一个让在容器中运行和管理应用程序进程变得更容易的平台。它提供了一种将您的应用程序与基础设施分离的方法。容器与虚拟机非常相似,但它们更轻便、高效且易于使用。有多种方法可以在 Linux 发行版上安装 Docker。在现有操作系统上安装 Docker 最流行且最简单的方法是使用 yum 命令。

本教程将演示如何在几步简单的操作中,在 CentOS 7 上设置和使用 Docker。

前提条件:

您在本教程中执行的所有命令都作为非 root 用户运行,如果需要,将使用 sudo 关键字提供 root 访问权限。

步骤 1:在 CentOS 7 实例上设置 Docker

官方 CentOS 7 软件源可能没有最新的 Docker 安装包。在本节中,您将从官方 Docker 软件源安装最新版本的 Docker。首先,您需要使用以下命令更新软件包数据库:

更新步骤完成后,运行以下命令下载并安装最新版本的 Docker:

Docker 现已安装,因此您可以通过运行以下命令启动 Docker 守护进程:

要验证 Docker 守护进程是否正在运行,请键入以下内容:

systemctl status 命令的输出应该与下面分享的输出类似,这表明它正在运行:

最后,为了确保 Docker 在您重启机器时自动启动,请使用以下命令:

Docker 安装为您提供了 Docker 服务以及客户端工具(Docker 命令行客户端)。在本教程的下一部分中,您将能够通过使用 Docker 命令进行更多实际操作。

您也可以查看我们的关于如何在公共云中的 Ubuntu 上安装&操作 Docker 的深入教程.

步骤 2:在不使用 Sudo 前缀的情况下使用 Docker 命令

Docker 命令需要 root 特权才能运行。因此,如果您想运行这些命令,必须在它们前面加上 sudo。在安装过程中,默认会创建一个 Docker 用户组。如果您将用户添加到该组中,则可以在不使用 sudo 的情况下运行 Docker 命令。尝试在不使用 sudo 或未将用户添加到该组的情况下运行 Docker 命令将导致类似于以下的输出:

将您的用户名添加到 Docker 组将确保您无需使用 sudo 来运行 Docker 命令:

要将另一个用户添加到 Docker 组,您只需替换命令中的用户名:

在本指南的其余部分中,我们将假设所有命令都由 Docker 用户组中的用户执行。如果不是这种情况,您可以在命令中使用 sudo 前缀。

步骤 3:执行 Docker 命令

现在您已经安装并运行了 Docker,让我们来看一些命令,以熟悉 Docker 命令行工具。Docker 命令通常采用以下形式:

要查找所有可用的子命令,您应该使用:

截至 Docker 20.10.3,可用子命令的完整列表包括:

You can use –help flag with a specific command to get more information about it:

要获取有关系统的详细信息,请使用:

步骤 4:使用 Docker 镜像

Docker 镜像可以被称为 Docker 容器的蓝图。这些镜像通常是从 Docker Hub 拉取的,这是一个由 Docker 项目管理的注册表。任何人都可以创建自己的镜像并将其推送到 Docker Hub。因此,您可以在该注册表中轻松找到各种各样的应用程序和操作系统发行版。让我们尝试运行一个简单的程序,以确认对 Docker Hub 的访问:

您应该会得到如下输出,这表明 Docker 正在正常工作:

您可以使用 search 命令在 Docker Hub 上找到各种 Docker 镜像。例如,查看以下命令以搜索 CentOS 镜像:

搜索查询将显示与该子字符串匹配的所有镜像的列表。在您的情况下,输出应该类似于:

在搜索结果中,有不同的列描述了关于镜像的信息。OFFICIAL(官方)列中的 OK 表示该镜像是由该应用程序背后的公司创建并支持的。确定镜像后,您可以使用 Docker pull 命令将其下载到本地计算机:

下载镜像后,您可以使用 Docker run 命令运行容器。如果您在未事先下载的情况下直接尝试运行镜像,Docker 将会先下载镜像,然后运行容器:

您可以使用以下命令列出已下载到本地计算机的镜像:

您应该会得到类似的输出:

在本教程的后面部分,您将能够修改镜像以运行容器。这些新镜像可以添加或推送到 Docker Hub 以及其他托管 Docker 镜像的注册表中。

步骤 5:以交互方式运行容器

有不同类型的容器。您在步骤 4 中运行的 hello-world 容器是一种在打印消息后运行并退出的容器。另一种类型的容器是交互式容器。您可以像使用虚拟机一样使用交互式容器。

让我们从最新的 CentOS 镜像创建一个容器。在 Docker run 命令中使用 -i 和 -t 标志将提供对 CentOS 容器的交互式访问:

命令提示符将发生变化,它应该类似于下面的输出:

现在您执行的任何命令都将在容器内部运行。这类似于在虚拟机中运行命令。让我们尝试安装 MySQL 服务器到 CentOS 容器中。您可以使用以下命令来执行此操作:

步骤 6:将容器中的更改提交到 Docker 镜像

启动容器后,您可以执行在类似虚拟机中可以执行的所有操作,例如创建/修改文件或设置应用程序。请注意,这些更改仅保留在该容器中,在您销毁该容器后,您所做的更改将丢失。

在本部分教程中,您将学习如何从包含您所做更改的容器中创建一个新的 Docker 镜像。在 Step5 之后,您将运行一个安装了 MySQL 服务器的 CentOS 容器。该容器现在与纯 CentOS 镜像不同。您可以保存此容器状态以便进一步使用。首先,您需要使用以下命令退出容器:

使用以下命令将您在容器中所做的更改提交到新的 Docker 镜像中:

在命令中,-m 指的是提交信息,基本上应该表示所做的更改,-a 标签用于提及作者。Container-id 是来自 Step5 的 ID,这是您在交互模式下运行容器后获得的,通常,repository 是您在 Docker Hub 的用户名。例如:

现在镜像已经提交,Docker images 命令应该会列出新镜像以及旧镜像:

该命令的输出应该类似于下面这样:

如示例所示,使用来自 Docker Hub 的 CentOS 镜像创建了一个新的镜像 centos-mysql。大小的差异表明进行了一些更改。在本示例中,是在容器中添加了 MySQL 服务器。下次如果您需要一个带有 MySQL 服务器的容器,您只需运行这个新镜像,瞧!您就拥有了一个运行着预装 MySQL 服务器的 CentOS 容器。

步骤 7:管理 Docker 容器

现在您已经熟悉了 Docker,在使用一段时间后,您已经拥有了一些正在运行的和一些未激活的容器。要获取活动容器的列表,您应该使用:

您应该会看到类似的输出:

要列出所有处于活动和非活动状态的容器,您应该在命令中使用 -a 标志:

要查找您创建的最后一个容器,可以提供 -l 标志:

要停止正在运行/活动的容器,请运行一个简单的命令:

您可以在 Docker ps 命令的输出中找到 container-id。

步骤 8:将镜像发布到仓库

创建新镜像后的下一步是与您的朋友分享。您还可以使用 Docker Hub 或任何其他注册表将其提供给全世界。在推送镜像之前,您需要登录到相应的注册表。

在本教程的下一部分中,您将学习如何将镜像推送至 Docker Hub。首先,在 Docker Hub 上注册。您需要登录 Docker Hub 才能使用以下命令推送镜像:

输入正确的密码且身份验证成功后,您就可以推送镜像了。要推送镜像,请使用以下命令:

该命令 of 输出将类似于以下内容:

推送镜像后,它应该会显示在您账户的控制面板中,如下图所示:

docker account dashboard

如果出现类似的失败,很可能是因为您没有登录:

您可以登录并重新尝试推送。

结论

您可以通过多种方式使用 Docker。本教程应该为您提供了足够的信息来帮助您入门。由于 Docker 是一个非常热门的项目,您可以从其项目的博客页面中找到许多关于其用法以及不同使用案例的详细信息。.

您还可以查看我们的其他 Docker 教程,以了解更多关于您可以使用 Docker 做些什么的信息:

祝您计算愉快!

author

Pranay Kapgate

作者 · CloudSigma

Preslav Dobrev 是 CloudSigma 的创意设计师,专注于通过传统和创新营销渠道打造一致的企业形象。他擅长将艺术愿景与战略营销相融合,创造具有影响力的品牌叙事。

评论

暂无评论。发表第一条评论吧。