斯蒂芬Grider

软件工程师需要申请自己的下一份工作时要做好充分的准备回答泊坞面试问题。为什么?泊坞窗的使用已在近几年成倍增长,是命名为第三最常用的平台排在2019年Linux和Windows之后。

Docker是一个巨大的生态系统,其中包含许多需要了解的工具、关键字和主题。为了帮助你在招聘经理面前节省时间,这里列出了20多个最常见的与码头相关的问题和答案,为你的下一次面试做准备。

问:Docker CLI和Docker守护进程之间有什么区别?

Docker CLI(命令行接口)和Docker守护进程经常会混淆。守护进程是执行繁重任务的程序,它作为代表服务器的Docker引擎发挥作用。守护进程构建映像并管理创建的容器。

CLI是与守护进程交互的Docker客户端。CLI接收命令并将它们提供给守护进程。

Docker和Kubernetes:完整的指南

最后更新2020八月

  • 317课
  • 所有级别
4.6 (30506)

在学习生产风格的开发工作流|时,使用Kubernetes构建、测试和部署Docker应用程序bob外围官网斯蒂芬·主梁

探索课程

问:什么是最重要的码头工人CLI命令?

最重要的命令是你一直使用的,所以列出你每天使用的命令。

问:关于在容器中运行数据库有哪些考虑事项?

请记住,Docker容器在本质上短暂的。当容器被删除,你永远失去它里面的数据。

如果要在容器中运行数据库,则需要数据持久性策略。这通常通过在容器中挂载一个卷来完成。然后,数据库可以将其数据存储在这个卷中。如果容器被删除,数据将通过卷被持久化。然后我们可以创建一个新的容器,并将相同的卷挂载到其中以重用该数据。

问:什么是创造泊坞窗图像的最佳方法是什么?

总是使用Dockerfile创建Docker图像。Dockerfiles是文本文档,它指定了守护进程创建映像时应该使用的一系列明确的步骤。其他工程师很容易阅读和修改它们。

不要创建一个容器,手动更改它,然后运行“docker commit”来创建图像。这可能会创建一个图像,但对其他工程师来说,复制图像将是一个挑战。

问:你如何调试运行的容器?

有一些方法可以用来调试运行中的容器:

问题:dockerfile是用JSON还是YAML语法写的?

脑筋急转弯!Dockerfile的容器既不JSON也不YAML。这句法仅搬运工,撰写文件被使用。

没有在一个Dockerfile使用的语法一组名称。你应该说,Dockerfiles包含一系列泊坞窗命令。

问:容器可以完全访问其主机操作系统吗?

默认情况下,Docker容器与主机操作系统是隔离的。容器可以通过设置“特权”标志来访问主机操作系统。当您创建一个带有“特权”标志的容器时,它将拥有对主机操作系统的完全访问权。

问:为什么要运行带有“特权”标志的容器?

有与“特权”标志运行泊坞容器几个原因。最常见的原因是你想要的容器,以便能够在自己创建的容器。

问:是什么“一站式”和“杀” CLI命令之间的区别?

“stop”命令向主进程发送“SIGTERM”信号。Docker然后等待进程退出。如果进程不退出,Docker将在10秒后发送“SIGKILL”信号。

“kill”命令会立即向主进程发送一个“SIGKILL”信号。

问:“attach”命令和“exec”命令之间有什么区别?

使用Exec命令来运行容器的命令内。运行此命令可以启动容器内的新进程。

“attach”命令与主进程的流交互。特别是,它将与STDOUT、STDERR和STDIN流交互。

总结:当您想在容器中运行一个新命令时,请使用' exec '。使用“attach”命令与主进程交互。

问:是用来做什么的“差异”命令?

在“差异”命令列出了已在容器内发生变化的所有文件。这只会名单变化,因为你创建容器制造。

问:你需要使用泊坞枢纽为所有项目?

不,Docker Hub不是所有项目都需要的。我们只在需要使用托管在Docker Hub上的图像时才使用Docker Hub。

如果我们想避免使用Docker Hub,我们可以从头开始构建每个映像。

问:你如何约束容器可利用的资源?

您可以通过添加一些选项到“泊坞窗运行”命令,限制了资源的容器用途。

问:是Docker容器和虚拟机是一回事吗?

不,Docker容器并不等同于虚拟机。Docker容器是沙箱化的单个进程或一组进程,它们限制了对主机文件系统的访问。然而,虚拟机是由管理程序管理的。

问:你创建一个泊坞窗CLI自动获得发布到公共注册像泊坞集线器的所有图像?

不,你建立的图像没有得到自动推送到公共注册表。内置的影像只能他们是建立在机器上。为了使该图像可在其他地方,你必须手动将其推到公共注册表。

问题:在应用程序开发过程中使用Docker的优点和缺点是什么?bob外围官网

优点

缺点

问:在构建新映像时,如何告诉Docker CLI忽略目录中的所有文件?

创建一个”。dockerignore”文件。此文件遵循与'相同的规则。gitignore”文件。在”。dockerignore文件,你将列出Docker在构建新映像时应该忽略的每个文件和文件夹。

问:为什么你要Docker忽略一个目录时,建立一个映像?

当构建映像时,Docker应该处理安装所有相关的依赖项。如果向Docker提供依赖项的副本,则在构建映像期间将覆盖这些依赖项。通过忽略依赖关系,它确保了构建时间会更快。

问:“create”、“start”和“run”命令之间有什么区别?

问:当容器的主进程崩溃时会发生什么?

它取决于构建时分配给容器的重启策略。

问:Docker映像是如何创建的?

创建Docker映像有两种方法。

1.你可以通过Dockerfile使用“docker build”命令来创建一个图像

2.映像也可以通过在容器上运行“docker commit”命令创建

问:图片中的“图层”是什么?

Docker图像由许多层构建而成。每一层表示对文件系统的一组更改。

创建Docker映像时,文件系统是空的。当Dockerfile的每一步运行时,另一层将被添加到图像中。

问:可以在两个运行容器分享图像相同的层?

是的!当你创建一个容器时,Docker会在底层图像中添加一个新图层。对容器文件系统所做的任何更改都将写入这一层。

属于底层图像的层永远不会改变。Docker将在基于该映像运行的每个容器之间共享它们。

这些原始层中的文件只能通过读操作访问。您不能通过容器写入它们。

问:使用Docker CLI运行单个容器很容易。管理许多容器更具挑战性。什么术语是指管理多个容器的过程?还有,有什么工具可以管理许多容器?

管理多个容器称为“业务流程”。

对于容器“编排”,有两种流行的工具:

  1. 多克群,官泊坞解决方案。
  2. Kubernetes,一种流行的开源解决方案,最初由谷歌引入。

这些工具的容器创建和管理自己的生命周期。他们也用来处理不同的容器之间的网络连接。

问:假设您创建了一个1GB大小的映像。然后从该映像创建五个独立的容器。在每个映像中,创建一个大小为200MB的文件。整个操作使用了多少磁盘空间?

的图像的创建出每个容器使用的磁盘空间可忽略的量。制作组五个容器不占用的空间显著量。然而,每一个在每个容器中取得了200MB的文件不占用200MB。

整个操作为原始映像使用1GB,然后为每个容器使用5 * 200MB,最终总计为2GB。

从图像创建容器不会复制底层图像的层。

问:什么是监视正在运行的容器中的最简单的方法?

监视容器最简单的方法是使用' docker ps '命令。这将打印出所有正在运行的容器的状态。

通过使用“docker attach”命令也可以很容易地监视容器。这将打印来自容器的日志,显示主进程的STDOUT和STDERR流。

通过使用“docker logs”命令打印通过STDOUT和STDERR发出的所有过去的日志。这对于查看容器过去所做的工作非常有用。

问:列出Dockerfile中出现的一些不同的命令。每个命令的目的是什么?

Dockerfiles包含许多不同的命令。

页面最后更新:2020年4月

在泊坞顶级球场

Devops基本原理- CI/CD与AWS +Docker+Ansible+Jenkins
拉胡尔·谢蒂
4.7 (371)
畅销书
了解泊坞窗对于初学者
艾哈迈德Tabana
4.4 (57)
Docker为Node.js项目从一个Docker队长
布雷特·费舍尔,码头船长项目
4.7 (811)
泊坞窗 - 牵手面向Java开发
理查德切斯特伍德,虚拟对程序员
4.6 (1397)
面向Python开发人员的Docker Essentials
克丽丝Celmer
4.6 (37)
泊坞窗 - 群 - 动手 - 的DevOps
Mumshad Mannambeth, KodeKloud训练
4.6 (1058)
码头工人掌握:Kubernetes +群从码头工人的队长
布雷特·费舍尔,码头船长项目
4.6 (40089)
畅销书
Docker和Kubernetes:完整的指南
斯蒂芬Grider
4.6 (30506)
Docker为绝对初学者-手- DevOps
Mumshad Mannambeth, KodeKloud训练
4.6 (16542)
畅销书
用Python & Django高级构建一个后端REST API
马克·温特伯顿,布鲁克·卢瑟福
4.6 (2689)
畅销书

更多的码头工人的课程

Docker的学生也在学习

使您的团队。引领行业。

获取订阅的在线课程和数字学习工具库与您Udemy组织业务。

请求一个演示

Stephen Grider的课程

现代阵营与终极版[2020更新]
斯蒂芬Grider
4.6 (59525)
畅销书
先进的反应,终极版
斯蒂芬Grider
4.5 (9284)
流星和反应的实时应用
斯蒂芬Grider
4.7 (1888)
畅销书
ES6 Javascript:完整的开发者指南
斯蒂芬Grider
4.6 (8796)
完整的长生不老药和凤凰训练营
斯蒂芬Grider
4.6 (5102)
畅销书
完整的反应本地+钩子课程(2020年版)
斯蒂芬Grider
4.6 (33513)
畅销书
MongoDB的完整开发人员指南
斯蒂芬Grider
4.5 (5840)
Webpack 2:完整的开发人员指南
斯蒂芬Grider
4.6 (4765)
反应本土:先进的概念
斯蒂芬Grider
4.2 (4455)

Stephen Grider的课程