43+ Docker 面试问题及答案(2025)

以下是新手和经验丰富的 DevOps 工程师经常在 Docker 面试中遇到的问题。

 

面向新人的 Docker 面试问题和答案

1.什么是Docker?

Docker 是一种开源轻量级容器化技术。它在云和应用程序打包领域广受欢迎。它允许您在轻量级和可移植的容器中自动部署应用程序。


2.使用Docker容器有什么好处?

以下是使用 Docker.

  • 提供高效、简单的初始设置
  • 允许您详细描述应用程序的生命周期
  • 简单配置并与Docker Compose交互。
  • 文档提供了每一点信息。

3.Docker 有哪些重要特性?

以下是 Docker 的基本功能:

  • 轻松建模
  • 版本控制
  • 展示位置/亲和力
  • 应用敏捷性
  • 开发人员生产力
  • Opera国家效率

4.Docker 的主要缺点是什么?

Docker 的一些显著缺点是:

  • 不提供存储选项
  • 提供较差的监控选项。
  • 不自动重新安排不活跃节点
  • 复杂的自动水平缩放设置

5.什么是Docker镜像?

Docker 镜像有助于创建 Docker 容器。您可以使用 build 命令创建 Docker 镜像。因此,它会创建一个在开始运行时启动的容器。每个 docker 镜像都存储在 Docker 注册表中。


6.什么是Docker Engine?

Docker 守护进程或 Docker 引擎代表服务器。docker 守护进程和客户端应在同一台或远程主机上运行,​​可以通过命令行客户端二进制文件和完整 RESTful API.


7. 解释注册表

有两种类型的注册表

  • 公共登记处
  • 私人注册中心

Docker 的公共注册中心称为 Docker hub,它允许您私密地存储镜像。在 Docker hub 中,您可以存储数百万个镜像。


8. 您应该运行什么命令来查看 Docker 中所有正在运行的容器?

$ docker ps

9.编写停止docker容器的命令

$ sudo docker stop container name

10. 将镜像作为容器运行的命令是什么?

$ sudo docker run -i -t alpine /bin/bash

针对资深专业人士的 Docker 面试问题

11.Dockerfile中常用的指令有哪些?

Dockerfile中常见的指令有:FROM、LABEL、RUN、CMD。


12.什么是内存交换标志?

Memory-swap 是一个经过修改的标志,只有当 memory 也设置时才有意义。当容器耗尽所有可用的 RAM 时,Swap 允许容器将快速内存需求写入磁盘。


13.解释一下Docker Swarm?

Docker Swarm 是 Docker 的原生集群,可帮助您将一组 Docker 主机整合为单个虚拟 Docker 主机。它提供标准的 Docker 应用程序接口。


14.如何在生产环境中监控docker?

Docker 状态和 Docker 事件用于监控生产环境中的 Docker。


15.Docker容器有哪些状态?

Docker容器的重要状态有:

  • 运行
  • 已暂停
  • 重新启动
  • 已退出

16.什么是Docker hub?

Docker hub 是一个基于云的注册表,可帮助您链接到代码存储库。它允许您在 Docker 云中构建、测试和存储您的映像。您还可以借助 Docker hub 将映像部署到您的主机。


17.什么是虚拟化?

虚拟化是一种逻辑划分大型机以允许多个应用程序同时运行的方法。

然而,当公司和开源社区能够提供处理特权指令的方法时,这种情况发生了变化。它允许多个操作系统在单个基于 x86 的系统上同时运行。


18.什么是 Hypervisor?

虚拟机管理程序允许您创建一个虚拟环境,客户虚拟机可以在其中运行。它控制客户系统并检查是否根据需要将资源分配给客户。

Docker 与 Hypervisor 中的虚拟化

Docker 与 Hypervisor 中的虚拟化


19. 解释 Docker 对象标签

Docker 对象标签是一种将元数据应用于 Docker 对象(包括图像、容器、卷、网络、集群节点和服务)的方法。


20. 编写一个 Docker 文件来创建和复制一个目录并使用 python 模块构建它?

FROM pyhton:2.7-slim

WORKDIR /app

COPY . /app

docker build –tag

21.docker 卷存储在哪里?

您需要导航:

 /var/lib/docker/volumes

22. 列出一些重要的高级 docker 命令

命令 描述
码头工人信息 信息司令部
码头工人拉 下载图片
码头工人统计 容器信息
Docker图片 下载的图像列表

23.Docker 客户端和 Docker Daemon 之间如何通信?

您可以使用 Rest API、socket.IO 和 TCP 的组合在 Docker 客户端和 Docker Daemon 之间进行通信。


24. 解释一下Docker中持续集成(CI)和持续开发(CD)的实现方法?

您需要做以下事情:

  • 在 docker 上运行 Jenkins
  • 您可以使用 docker-compose 在 Jenkins 中运行集成测试

25. 使用 Systemd 控制 Docker 的命令有哪些?

systemctl start/stop docker
service docker start/stop

26.如何使用 JSON 代替 YAML 编写文件?

docker-compose -f docker-compose.json up

27. 将新镜像推送到 Docker 注册表需要输入什么命令?

docker push myorg/img

28. 如何包含复制/添加或卷的代码?

在 docker file 中,我们需要使用 COPY 或 ADD 指令。这对于重新定位代码很有用。但是,如果我们想进行更改,则应该使用卷。


29. 解释一下 Docker 容器扩展的过程

Docker 容器可以扩展到任意级别,从几百个容器到几千个或几百万个容器。唯一的条件是容器始终需要内存和操作系统,并且 Docker 在扩展时不应受到限制。


30.创建Docker容器的方法是什么?

您可以使用任何特定的 Docker 映像通过以下命令创建 Docker 容器。

docker run -t -i command name

此命令不仅创建容器,还为您启动它。


针对 5 年经验的 Docker 面试问题

31.Docker容器生命周期的步骤是什么?

以下是Docker生命周期的步骤:

  • 构建
  • 运行

32. 如何使用单个服务运行多个容器?

通过使用 docker-compose,您可以使用单个服务运行多个容器。所有 docker-compose 文件都使用 yaml 语言。


33.什么是CNM?

CNM 代表容器网络模型。它是 Docker, Inc. 制定的标准或规范,构成了 Docker 环境中容器网络的基础。此 Docker 方法为容器网络提供了对多种网络驱动程序的支持。


34.Docker 是否支持 IPV6?

是的,Docker 支持 IPv6。仅在 Linux 主机上运行的 Docker 守护程序支持 IPv6 网络。但是,如果您想在 Docker 守护程序中启用 IPv6 支持,则需要修改 /etc/docker/daemon.json 并将 ipv6 键设置为 true。


35.容器退出时会丢失数据吗?

不会,应用程序写入磁盘的任何数据都会存储在容器中。容器的文件系统即使在容器停止后仍会保留。


36.Docker 中有哪些不同类型的卷挂载类型?

绑定挂载-它可以存储在主机系统上的任何位置


37.如何配置Docker下默认的日志驱动?

要将 Docker 守护程序配置为默认使用特定日志记录驱动程序。您需要将 log-driver 的值设置为日志记录驱动器的名称 daemon.jason.fie。


38.解释一下Docker Trusted Registry?

Docker Trusted Registry 是 Docker 的企业级镜像存储工具。您应该将其安装在防火墙后面,以便可以安全地管理应用程序中使用的 Docker 镜像。


39.什么是 Docker 命名空间?

Docker 中的命名空间是一种提供隔离工作空间(称为容器)的技术。命名空间还为 Docker 容器提供了一层隔离。


40. Docker 的三个组件是什么 Archi质地

  • 客户
  • Docker 主机
  • 注册表

41.什么是客户端?

Docker 向客户端提供命令行界面工具以便与 Docker 守护进程交互。


42.Docker_Host 的用途是什么?

它包含容器、镜像和 Docker 守护进程。它提供了一个完整的环境来执行和运行您的应用程序。


43. 如何在同一台主机上运行 Compose 文件的多个副本?

Compose 使用项目名称,它允许您为项目的所有容器和其他资源创建唯一标识符。要运行项目的多个副本,请使用 -a 命令行选项或使用 COMPOSE_PROJECT_NAME 环境变量设置自定义项目名称。

这些面试问题也会对你的口试有帮助