如何在 CentOS 8 上安装和使用 Docker
Docker 是一个顶级的开源平台,用于在容器的帮助下开发、部署、运行和发布应用程序。容器就像虚拟机,有助于将应用程序与系统分离。开发应用程序并将其及其所有依赖项打包在容器内并将应用程序交付到任何地方变得毫不费力。
Docker 因其革命性的开发而闻名,在过去几年中,它的受欢迎程度急剧上升。在 Docker 和容器出现之前,部署和扩展是一件非常头疼的事情。
Docker 官方文档网页上提供了三种在 CentOS 8 操作系统上安装 Docker 的方法。
一种是使用自动化的便利脚本。
第二种是通过下载Docker的RPM包并手动安装。
第三种方法是设置 Docker 的存储库并从那里安装它,这是推荐且最合适的方法。
这篇文章肯定会推荐在 CentOS 8 操作系统上安装 Docker 的最有效的推荐方法。
使用存储库在 CentOS 8 上安装 Docker
要在 CentoOS 8 上安装最新版本的 Docker,在开始安装之前,请确保 CentOS 8 操作系统上没有安装旧版本的 Docker。
卸载旧版本
首先,最好卸载旧版本的 Docker 和 docker-engine。因此,执行下面键入的命令来删除/卸载 docker、docker-engine 及其所有依赖项:
如果 DNF 找不到这些包的匹配项,那就完全没问题了。
新的 Docker 引擎包称为 docker-ce,它在 CentOS 8 上的安装过程非常简单。
安装 Docker
虽然 Docker 可以在官方 DNF 软件包存储库中下载并安装在 CentOS 8 上,但它不是最新版本。要安装最新版本,通过将其官方存储库添加到centOS 8系统来安装Docker是最好的方法。
在添加存储库之前,请使用以下命令更新系统的软件包存储库:
更新后,如果有任何软件包需要升级,则使用以下键入的命令升级它们:
一旦系统的所有软件包都是最新的,就设置存储库。可以通过将存储库添加到系统的源列表来设置 Docker 的存储库。
设置存储库
要将任何存储库添加到系统的源列表中,语法非常简单。您可以使用下面给出的命令将 Docker 的存储库添加到系统中:
添加 Docker 的存储库后,您可以在 CentOS 8 上安装最新可用版本的 Docker Engine。
安装 Docker 引擎
由于 Docker 的存储库已添加到系统中,因此 Docker 的安装非常简单,就像在 CentOS 8 中安装任何其他软件包一样。要直接从 Docker 存储库安装最新版本的 Docker,请执行以下命令:
在上面的命令中,“-nobest”选项用于删除已安装的软件包以解决依赖关系。 “--allowerasing”选项用于删除已安装的软件包以解决依赖关系。
-y 标志已添加到安装命令中,因此安装过程不会提示任何内容。您不必输入 y 并按 Enter 即可继续 Docker 的安装过程。
好了,到此阶段,Docker 已成功安装,但尚未准备好使用。要开始使用 Docker,我们需要启动 Docker 守护进程。要在 centOS 8 上启动 Docker 守护进程,请执行以下命令:
Docker 守护进程启动后,不会显示任何输出。您可以通过检查 Docker 守护进程的状态来验证它是否正在运行。
要验证 Docker 守护程序的状态,请运行以下键入的命令:
在下面附加的输出屏幕截图中,您可以看到该服务处于活动状态并正在运行。
最后,与其每次都启动 Docker 守护进程,不如让 Docker 守护进程在系统启动时在启动时启动。要在启动时自动启动 Docker 守护进程,请执行以下命令:
此阶段,Docker已安装完毕,并且docker-daemon已启动;您拥有 docker 命令行实用程序,您可以在其中使用 docker 并执行与 docker 相关的任务。我们来学习一下 CentOS 8 操作系统上 Docker 的基本用法。
Docker 命令行实用程序的使用
完成 Docker 的安装后,我们来深入了解一下它的用法,了解一下 Docker 命令行实用程序。
编写docker命令的语法为:
要了解所有可用的选项和命令,只需在终端中运行 docker 命令并按 Enter:
使用 Docker 镜像
Docker 有一个名为 Docker Hub 的注册表,所有 Docker 镜像都存储在其中。 Docker 镜像包含应用程序及其依赖软件以及一些其他必需的库。从 Docker Hub 中,我们可以拉取任何可用的 Docker 镜像,通过使用这些 docker 镜像,Docker 容器可以在 Docker 平台上运行。
在 Docker Hub 上构建和托管 Docker 镜像没有任何限制。在 Docker Hub 上,任何人都可以托管他的 Docker 镜像。
让我们尝试从 Docker hub 访问、下载并运行一个“hello-world”Docker 镜像,看看它是否有效。要从 Docker Hub 下载并运行 Docker 映像,请使用子命令 run 执行 docker 命令,如下所示:
您可以在下面提供的输出中看到“hello-world”Docker 映像已成功从 Docker Hub 下载并运行。
同样,如果您不知道 Docker Hub 中是否存在您需要的 docker 镜像,也可以进行搜索。例如,要从 Docker Hub 搜索“CentOS”Docker 映像,请使用子命令 search 执行 docker 命令,如下所示:
上面的命令将从整个 Docker Hub 中搜索字符串“centos”,并获取名称中包含该字符串的所有 Docker 镜像,并在终端上显示结果:
在上面所附的屏幕截图中,您可以看到我们已经获得了所有 Docker 镜像、它们的描述以及名称中包含“centos”的星星。
找到您需要的 Docker 镜像后,您可以通过执行 docker 命令并借助子命令 pull 来获取/下载该镜像,如下所示:
成功拉取镜像后,您可以使用 run 子命令简单地运行它:
要列出系统中的所有 docker 映像,请在终端中输入以下简单命令:
您可以在输出中看到列出了“hello-world”和“centos”图像。
了解了 Docker 镜像的整体概念后,我们来了解一下 Docker 容器。
运行 Docker 容器
由于 Docker 容器就像虚拟机一样,它们具有很强的交互性和资源友好性。最近,我们运行了一个“hello-world”容器,它显示 hello world 消息并退出。
现在,让我们尝试使用刚刚下载的 CentOS 映像运行另一个容器。要使用 centos 映像运行容器,请运行以下命令:
在上面的命令中,我们使用了 -it 开关,这将使我们能够访问容器中的交互式 shell。
正如您在上面所附的屏幕截图中看到的,我们现在进入了 Docker 容器的 shell,163e7ed6525f 是容器 ID。
现在,无论我们要执行什么命令,它都将在容器内执行。例如,如果我们想在容器中下载并安装MySQL,我们只需要运行“dnf install @mysql”命令,甚至不需要在命令开头写sudo,因为我们是以root用户登录的:
您可以看到容器内MySQL的安装已经开始。
输入“y”导入 GPG 密钥,然后按 Enter 键继续容器内 MySQL 的安装过程。
到此阶段,您就可以看到MySQL已经安装成功了。
对容器进行所需的更改后,您肯定需要将 Docker 容器中的更改提交到 Docker 映像。
提交变更
到目前为止,我们所做的更改(例如安装 MySQL)仅应用于容器。但是,如果我们错误地忘记保存更改,那么一切肯定都会丢失。
在容器内安装 MySQL 后,要将容器的状态保存为新映像,您首先需要退出当前所在的容器。
要保存我们在容器内执行的更改,请使用以下键入的命令退出容器:
退出容器后,执行 docker commit 命令将更改提交到新的 Docker 镜像。提交更改的语法如下:
在上面的语法中:
“-m”用于提交消息,解释您做了什么以及做了哪些更改,“-a”用于提交这些更改的作者姓名,“ Container-id”是我们刚刚在Container shell中看到的容器的ID,最后提供“存储库名称”。 ” 存储库名称可以是您想要指定的任何新名称;这是一个新的图像名称。
例如:
要提交我们最近所做的更改,docker commit 命令将如下所示:
提交更改后,将在 CentOS 操作系统上创建新映像。
您可以使用 docker images 命令在 CentOS 操作系统上显示图像:
您可以看到上面所附的输出屏幕截图; 4 分钟前创建了一个带有 centos 的新 Docker 镜像,并列在 Docker 镜像列表中。与旧的 centos 镜像相比,您还可以看到镜像大小的增加。镜像大小的增加肯定是由于我们最近在容器中进行的更改(安装MySQL)造成的。
从现在开始,每当您需要运行带有 MySQL 的容器时,您都可以使用最新的 centos 镜像。
列出 Docker 容器
我们刚刚列出了 Docker 镜像;我们也可以列出 Docker 容器。 Docker中的Container可以有两种状态:
活动容器
不活动的容器
要显示/列出活动的 Docker 容器,请执行以下命令:
要显示/列出所有 Docker 容器,请使用 -a 标志执行 docker ps 命令:
如果要停止活动容器,只需使用子命令 stop 和容器 ID 执行 docker 命令,如下所示:
推送 Docker 镜像
您需要学习的最后一件事是将 Docker 映像推送到 Docker Hub 并共享它。
要在 Docker Hub 上推送或上传 Docker 镜像,您必须首先在 Docker Hub 上拥有一个帐户。如果您没有帐户,请注册并创建一个;否则,如果您已经有帐户,则可以继续推送 Docker 映像。
要推送镜像,首先,使用以下命令登录 Docker Hub:
输入您的 Docker Hub 的密码,如果您输入的密码正确,您将登录并推送您选择的 Docker 镜像。
要推送镜像,请执行下面给出的 docker 命令以及子命令 push 和 Docker 镜像名称:
上传 Docker 镜像所需的时间取决于镜像的大小:
推送的 Docker 镜像将列在您的 Docker Hub 帐户的仪表板页面上,您可以从那里验证它。
与此相反,如果您无法将 Docker 镜像推送到 Docker Hub,那么您肯定没有正确登录。尝试再次登录并推送 Docker 镜像。
结论
这篇文章包含有关 Docker 以及如何在 CentOS 8 操作系统上安装和设置 Docker 的完整分步且深刻的指南。在这篇文章中,我们学习了如何通过将 Docker 的存储库添加到 CentOS 8 系统来安装 Docker,并安装最新版本的 Docker。
我们已经学习了 Docker 的基本但详细的用法。我们学习了 Docker 镜像、Docker 容器、如何从 Docker Hub 拉取 Docker 镜像、如何运行 docker 容器、如何将容器的更改提交到 Docker 镜像,最后,如何将 Docker 镜像推送到Docker Hub 与国际社区分享。