1到3年的运维人员必备的Docker面试题

@高效码农  August 31, 2022

本文涵盖了与 Docker 相关的一些最常见的面试问题。

为了方便阅读,我将这篇文章分为 3 个部分。

第一部分包括与虚拟化、管理程序和容器化等概念相关的基本 Docker 问题。

第二部分将其提升一个档次,并向您介绍一些高级 Docker 问题。您将了解代码管道管理、开发人员生产力和应用程序隔离等内容。

第三部分也是最后一部分将教你一些基本的 Docker 命令。由于大多数面试官都在寻找动手 Docker 技能,因此记住和练习基本的 Docker 命令很重要。在本节中,您将学习如何启动、停止和终止容器,以及列出所有正在运行的容器。

基本 Docker 问题

Docker 是一个开源容器化平台。这意味着它可以帮助开发人员将应用程序部署到不同的容器中。

什么是 Docker?

Docker 是一个容器化平台,您可以使用它以容器的形式将您的应用程序及其依赖项打包在一起。这将有助于确保您的应用程序在任何环境中都能顺利运行。

什么是 Docker 容器?

Docker 容器由应用程序及其所有依赖项组成。简单来说,Docker 容器就是 Docker 镜像的运行时实例。它们可以在任何计算机、任何基础设施或任何云上运行。

什么是容器化?

在软件开发中,在一台机器上开发的代码可能无法在另一台机器上运行是很常见的。这是因为依赖关系。容器化的概念就是为了解决这个问题而开发的。这意味着应用程序与其所有配置文件和依赖项有效地捆绑在一起。Docker 是最著名的容器化平台之一。

什么是管理程序?

管理程序是一种使虚拟化过程成为可能的软件。管理程序的另一个名称是虚拟机监视器。它负责划分系统并为每个划分的环境分配资源。这基本上意味着您可以在单个系统上拥有多个操作系统。

什么是虚拟化?

创建某物的虚拟版本的过程称为虚拟化。这可以是计算机存储、服务器或应用程序。虚拟化允许开发人员将一个系统分成许多不同的部分。这些部分中的每一个都可以作为一个系统。一种称为管理程序的软件使这成为可能。

什么是 Docker 镜像?

Docker 镜像可以称为 Docker 容器的来源。这意味着 Docker 映像用于创建 Docker 容器。当开发人员运行 Docker 映像时,会创建一个 Docker 容器实例。

什么是 Docker Hub?

Docker Hub 是一种放置所有 Docker 镜像的注册表。开发人员可以从 Docker Hub 中选择镜像并使用它们来创建容器或其他镜像。Docker Hub 是世界上最大的镜像容器注册中心。

高级 Docker 问题及答案

面试官会从这部分提出问题,以检查您使用 Docker 的经验。一旦你的面试官意识到你熟悉 Docker 的基本概念,他们就会转向一些更高级的问题。本文的这一部分将帮助您了解一些高级 Docker 概念。

Docker 与其他容器化方式有什么不同?

尽管 Docker 是迄今为止世界上最著名和最有效的容器化方法,但它并不是唯一的。Docker 的不同之处在于 Docker 容器易于部署在任何云平台中。这意味着您可以在同一硬件上运行更多应用程序。快速创建容器化应用程序也更容易。管理和部署应用程序的过程也更加高效。您还可以与您的应用程序共享容器。

Docker容器能扩展到什么程度?有什么要求?

您在互联网上看到的大部分内容,包括 Google 和 Twitter 等网站,都是基于容器技术运行的。这意味着容器可以扩展到可以让数千甚至数百万个容器并行运行的程度。至于要求,您需要有足够的内存和其他操作系统要求,以确保容器得到有效扩展。

Docker 运行在哪些平台上?

Docker 在多种平台上运行。您应该确保在回答中提及您正在面试的公司使用的平台。

Docker 可用于 Amazon ECS、Amazon EC2、Microsoft Azure、Google Compute Engine 和 Rackspace 等云平台。

它还可以在 Ubuntu、ArchLinux、OpenSUSE、CRUX、Fedora、RHEL 和 Gentoo 上运行。

如何识别 Docker Container 的状态?

Docker 容器可以有六种状态——已创建、正在运行、已暂停、正在重新启动、已退出和已死。

可以使用类似 $ docker ps 的命令来检查容器的当前状态。

还需要了解无法从 Docker 中删除暂停的容器。应先停止容器,然后才能将其移除。

容器也不可能自行重启。

每台主机可以运行多少个容器?

可以运行任意数量的容器。对 Docker 没有任何限制。但是应该注意,每个容器都需要存储空间、内存和 CPU。因此,应该确保在运行容器之前拥有必要的硬件。还需要考虑应用程序的大小。容器大多是轻量级的,但它在很大程度上取决于主机操作系统。

云会超越容器化的使用吗?

Docker 容器越来越受欢迎。云平台也在兴起。当你面试 Docker 职位时,你应该说 Docker 永远不会被 Cloud 取代。您还应该能够支持您的意见。

在决定使用 Docker 还是云之前,公司应该考虑到他们的所有要求。如今,大多数公司都将 Docker 与 Cloud 集成在一起。这将使两全其美成为可能。

如何监控生产环境中的 Docker?

有很多方法可以在生产环境中监控 Docker。Docker 提供了许多功能,例如 Docker stats 和 Docker vents 来做同样的事情。

Docker 统计数据将为您提供应用程序的 CPU 和内存使用情况。您可以使用 Docker 事件来获取有关 Docker 中发生的不同活动的信息。

基本 Docker 命令面试题

一旦你的面试官意识到你对 Docker 有很强的理论理解,他们会增加测试你的实践经验的难度。本文的这一部分将教你一些基本的 Docker 命令。你可以利用你对 Docker 命令的了解来打动你的面试官。

如何知道正在运行、已暂停、已停止的Containers的数量?

您可以使用以下命令检查运行、暂停和停止的容器数量。

$ docker info
如何登录 Docker 存储库?

您可以使用以下命令登录 Docker Hub。

$ docker login

输入此命令后,您将需要输入您的用户名和密码。

如何对基础镜像进行修改和自定义?

首先,您需要将 Docker Hub 中的映像拉入本地系统。您可以使用以下命令来拉取图像。

$ docker pull <image_name>
如何使用镜像创建Docker容器?

您可以使用上面给出的命令从 Docker 集线器中提取图像,然后运行它来创建容器。您可以使用以下命令。

$ docker run-it-d <image_name>

命令中的“-d”表示容器需要以分离模式启动。

列出所有正在运行的容器的命令是什么?

您可以使用以下命令列出所有正在运行的容器。

$ docker run-it-d <image_name>

启动、停止、杀死容器的命令是什么?

使用以下命令启动 Docker 容器。

$ docker start <container_id>

以下命令可用于停止运行容器。

$ docker stop <container_id>

使用以下命令杀死一个容器。

$ docker kill <container_id>
如何编辑和更新容器?将其作为一个新容器并将其存储在本地系统上。

这听起来可能很复杂,可以在单个命令的帮助下执行所有这些操作。

$ docker commit <container_id> <username/image_name>


添加新评论