Top 20 Docker 面试题(附答案)

编辑页面封面

Docker 是一种流行的开源软件平台,可简化创建、管理、运行和分发应用程序的过程。它使用容器来打包应用程序及其依赖项。Docker 主导了市场。大多数顶级和 IT 公司都采用 Docker 来简化其应用程序开发工作流程。对具有 Docker 经验的申请人的需求很高。

破解 Docker 面试是获得这些令人垂涎的角色之一的关键。我们收集了 40 大 Docker 面试问题,以帮助您准备 Docker 面试。这个 Docker 教程包括问题和答案。让我们开始吧!

Docker 面试问答

1. 什么是 Docker 容器?

Docker 容器在应用程序层创建抽象并将应用程序及其所有依赖项打包在一起。这使我们能够快速可靠地部署应用程序。容器不需要我们安装不同的操作系统。相反,它们使用底层系统的 CPU 和内存来执行任务。这意味着任何容器化应用程序都可以在任何平台上运行,而不管底层操作系统如何。我们也可以将容器视为 Docker 镜像的运行时实例。

2. 什么是 DockerFile?

Dockerfile 是一个文本文件,其中包含我们需要运行以构建 Docker 映像的所有命令。Docker 使用 Dockerfile 中的指令自动构建镜像。我们可以docker build用来创建按顺序执行多个命令行指令的自动构建。

3. 如何从 Docker 镜像创建 Docker 容器?

为了从镜像创建容器,我们从 Docker 存储库中提取我们想要的镜像并创建一个容器。我们可以使用以下命令:

1

$ docker run -it -d <image_name>

4. Docker Compose 可以使用 JSON 代替 YAML 吗?

是的,我们可以对Docker Compose文件使用 JSON 文件而不是YAML

$ docker-compose -f docker-compose.json up

5. 什么是Docker Swarm?

Docker Swarm 是一个容器编排工具,它允许我们跨不同主机管理多个容器。使用 Swarm,我们可以将多个 Docker 主机变成单个主机,以便于监控和管理。

6. 如果你想使用一个基础镜像并对其进行修改,你怎么做?

我们可以使用以下 Docker 命令将图像从 Docker Hub 拉到我们的本地系统上:

$ docker pull <image_name>

7. 如何启动、停止和终止容器?

要启动 Docker 容器,请使用以下命令:

$ docker start <container_id>

要停止 Docker 容器,请使用以下命令:

$ docker stop <container_id>

要终止 Docker 容器,请使用以下命令:

$ docker kill <container_id>

8. Docker 运行在哪些平台上?

Docker 在以下 Linux 发行版上运行:

  • CentOS 6+

  • Gentoo

  • ArchLinux

  • CRUX 3.0+

  • openSUSE 12.3+

  • RHEL 6.5+

  • Fedora 19/20+

  • Ubuntu 12.04、13.04

Docker 还可以通过以下云服务在生产中使用:

  • 微软Azure
  • 谷歌计算引擎
  • 亚马逊 AWS EC2
  • 亚马逊 AWS ECS
  • 机架空间

提示:我们始终建议您在面试之前进行一些公司研究。要为这个特定问题做准备,请了解公司如何使用 Docker 并在您的答案中包含他们使用的平台。

9. 解释 Docker 组件。

三个架构组件包括 Docker 客户端、主机和注册表。

  • Docker 客户端:该组件执行构建和运行操作以与 Docker 主机通信。

  • Docker 主机:该组件包含 Docker 守护程序、Docker 镜像和 Docker 容器。守护进程建立到 Docker Registry 的连接。

  • Docker Registry:该组件存储 Docker 镜像。它可以是公共注册表,例如 Docker Hub 或 Docker Cloud,也可以是私有注册表。

10. 虚拟化和容器化有什么区别?

虚拟化

虚拟化帮助我们在单个物理服务器上运行和托管多个操作系统。在虚拟化中,管理程序为客户操作系统提供了一个虚拟机。VM 形成了硬件层的抽象,因此主机上的每个 VM 都可以充当物理机。

容器化

容器化为我们提供了一个独立的环境来运行我们的应用程序。我们可以在单个服务器或 VM 上使用相同的操作系统部署多个应用程序。容器构成了应用层的抽象,所以每个容器代表一个不同的应用。

11. 管理程序的功能是什么?

管理程序或虚拟机监视器是帮助我们创建和运行虚拟机的软件。它使我们能够使用单个主机来支持多个来宾虚拟机。它通过划分主机的系统资源并将它们分配给已安装的来宾环境来实现这一点。可以在单个主机操作系统上安装多个操作系统。有两种类型的管理程序:

  • Native:本机管理程序或裸机管理程序,直接在底层主机系统上运行。它使我们可以直接访问主机系统的硬件,并且不需要基本服务器操作系统。

  • 托管:托管管理程序使用底层主机操作系统。

12.如何构建Dockerfile?

为了使用我们概述的规范创建映像,我们需要构建一个 Dockerfile。要构建 Dockerfile,我们可以使用以下docker build命令:

$ docker build <path to dockerfile>

13. 使用什么命令将新镜像推送到 Docker Registry?

要将新镜像推送到 Docker Registry,我们可以使用以下docker push命令:

$ docker push myorg/img

14.什么是Docker引擎?

Docker Engine 是一种开源容器化技术,我们可以使用它来构建和容器化我们的应用程序。Docker Engine 由以下组件支持:

  • Docker 引擎 REST API
  • Docker 命令行界面 (CLI)
  • Docker 守护进程

15. 如何访问正在运行的容器?

要访问正在运行的容器,我们可以使用以下命令:

$ docker exec -it <container_id> bash

16.如何列出所有正在运行的容器?

要列出所有正在运行的容器,我们可以使用以下命令:

$ docker ps

17. 描述 Docker 容器的生命周期。

Docker 容器经历以下阶段:

  • 创建容器
  • 运行容器
  • 暂停容器(可选)
  • 取消暂停容器(可选)
  • 启动容器
  • 停止容器
  • 重启容器
  • 杀死容器
  • 销毁容器

18. 什么是Docker对象标签?

Docker 对象标签是存储为字符串的键值对。它们使我们能够将元数据添加到 Docker 对象,例如容器、网络、本地守护进程、图像、Swarm 节点和服务。

19. 使用Docker Compose时如何保证容器1先于容器2运行?

Docker Compose 在继续下一个容器之前不会等待容器准备就绪。为了控制我们的执行顺序,我们可以使用“取决于”条件,depends_on。这是在 docker-compose.yml 文件中使用的示例:

version: "2.4"

services:

 backend:

   build: .

   depends_on:

     - db

 db:

   image: postgres

docker-compose up命令将按照我们指定的依赖顺序启动和运行服务。

20.docker create命令有什么作用?

docker create命令在指定映像上创建可写容器层,并准备该映像以运行指定命令。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,463评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,868评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,213评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,666评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,759评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,725评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,716评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,484评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,928评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,233评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,393评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,073评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,718评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,308评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,538评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,338评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,260评论 2 352

推荐阅读更多精彩内容