12个基本的码头工人面试问题 *

最好的码头工人开发人员和工程师可以回答的全部基本问题. 在我们社区的推动下,我们鼓励专家提交问题并提供反馈.

现在聘请一名顶级码头工人开发人员
Toptal标志是顶级自由软件开发人员的专属网络吗, 设计师, 金融专家, 产品经理, 和世界上的项目经理. 顶级公司雇佣Toptal自由职业者来完成他们最重要的项目.

面试问题

1.

使用不安全的码头工人镜像注册表的可能方法是什么?

查看答案

在一些项目中, 你可以选择私有的码头工人注册表,而不是码头工人 Hub或任何云提供商的注册表. 这可能采取部署码头工人注册服务器的形式, 或者像Nexus这样的第三方本地注册服务器.

当您想要连接这些私有注册中心时, 您的注册表应该按照最佳实践使用SSL证书进行保护.

如果希望使用自签名SSL证书,还可以选择不安全地使用私有注册表(注意), 这应该只用于测试目的. 的值,将您的私有测试注册表添加到数组中 “insecure-registries” 输入你的 守护进程.json 配置文件.

2.

有什么用 码头工人保存码头工人负载 命令?

查看答案

码头工人镜像可以通过 码头工人保存 comm和. 例如:

码头工人保存 -o .焦油 

导出的码头工人镜像可以通过 码头工人负载 命令:

码头工人负载 -i .焦油

注意,这不会从基于映像的任何容器导出数据, 只是图像本身.

3.

什么是默认的码头工人网络驱动程序,以及如何在运行码头工人镜像时更改它?

查看答案

码头工人提供了不同的网络驱动程序,比如 , 主人。, 覆盖, macvlan. 是默认值.

有时,您可能希望使用码头工人 Swarm或将容器直接连接到主机网络. 在这些情况下,您需要更改默认的网络驱动程序.

方法创建一个带有新网络驱动程序的新网络 ——司机 or -d 参数。 码头工人网络创建 comm和. 然后,您需要运行码头工人映像 ——网络 参数以使用新创建的网络.

申请加入Toptal的发展网络

并享受可靠、稳定、远程 自由码头工人开发工作

申请成为自由职业者
4.

什么是容器编排?我们为什么要使用它?

查看答案

当您必须管理大型动态环境时 码头工人 仅凭命令是不够的. 在自动化容器的伸缩和运行状况检查时,您将面临许多问题. 在这种情况下,软件团队使用像Kubernetes这样的容器编排工具. 这样的软件实现了另一个层次的自动化:

  • 轻松、安全且具有高可用性地部署或扩展容器
  • 从容器组提供服务(内部或外部)
  • 当出现特定于主机的问题时,将容器从一台主机移到另一台主机
  • 像管理环境变量一样轻松地管理配置数据
5.

码头工人容器的可能状态是什么,它们是什么意思?

查看答案

创建如果你的码头工人容器是新创建的,你会看到这个状态. 在此状态下,容器尚未启动.

重新启动当你重新启动你的码头工人容器——或者容器因为一个问题而重新启动自己——你会看到这个状态.

码头工人有四种不同的重启策略. 默认值为 no. 有了这个政策, 码头工人守护进程永远不会尝试重新启动您的容器(除非您手动告诉它).)

第二项政策是 如果执行失败. 有了这个政策, 如果存在任何问题,码头工人守护进程将尝试重新启动容器, 这是, 如果任何启动脚本返回非零退出码.

第三项政策是 总是. 使用此策略,码头工人守护进程将尝试在以下情况下重启容器:

  1. 任何问题存在,
  2. 手动停止,或者
  3. 码头工人守护进程本身已停止并重新启动

第四项政策是 unless-stopped,其中码头工人守护进程将始终尝试重新启动容器,除非您手动停止它们.

运行运行是容器的主要状态. 这意味着它已经启动,并且容器本身没有检测到任何问题.

停顿了一下:如果你暂时停止运行码头工人容器通过 码头工人暂停,这是您将看到的,直到您取消暂停.

退出:如果您的容器因问题而停止,或者您手动停止了容器, 您将看到处于这种状态的容器, 取决于您的重启策略,如上所述.

6.

什么是码头工人映像? 什么是码头工人镜像注册表?

查看答案

码头工人映像由许多层组成. 每一层对应于图像码头工人file中的一个命令. 当您将码头工人映像作为容器运行时,该映像为应用程序提供隔离.

您可以从单个码头工人映像运行多个容器. 码头工人镜像可以从码头工人file中构建.

码头工人镜像注册表是码头工人镜像的存储区域. 你可以从中获取图像,而不是构建图像.

映像注册表可以是公共的,也可以是私有的. 最著名的公共注册中心是码头工人 Hub.

7.

码头工人企业版提供了哪些特性而不是码头工人社区版?

查看答案

码头工人企业版提供经过认证的码头工人镜像和插件. 有了这个认证,码头工人公司. 确保相关映像通过安全性和最佳实践检查. 换句话说,它们保证了一定的可靠性基线.

码头工人企业版还提供了Active Directory或LDAP用户集成, 持续的漏洞和安全扫描, 以及容器应用程序和图像管理功能.

8.

什么是码头工人 Swarm,应该使用哪个网络驱动程序?

查看答案

码头工人 Swarm是一个开源的容器编排工具,它集成了码头工人引擎和CLI. 如果你想使用码头工人 Swarm,你应该使用 覆盖 网络驱动程序. 使用覆盖网络通过将多个码头工人主机守护进程连接在一起来启用Swarm服务.

9.

用这个有什么问题吗 最新的 标记在容器编排环境中? 什么被认为是图像标记的最佳实践?

查看答案

如果你通过 最新的 在Kubernetes这样的容器编排环境中,它可能会导致问题.

问题是,如果你只使用 最新的 标记,您将丢失旧映像,部署将使用新映像. 如果新映像有任何问题,部署可能会失败,从而导致停机.

当您使用显式的版本号来标记码头工人映像时, 您可以轻松地回滚到旧图像. 也, 当您将新映像推送到您的私有注册表时, 由于您的标记,您的部署将继续使用旧的版本号,直到您准备好切换它们.

码头工人映像标记的最佳实践是同时使用这两种类型的标记. 首先,将码头工人映像标记为 最新的 和一个版本号,然后分别为每个标签推送两次. 例如:

码头工人标签nginx:最新的 nginx:0.0.1

码头工人 push nginx:最新的
码头工人 push nginx:0.0.1
10.

码头工人 Compose是什么? 它可以用来做什么?

查看答案

码头工人 Compose是一个工具,它可以让你通过一个YAML或JSON文件定义多个容器及其配置.

码头工人 Compose最常见的用途是当应用程序有一个或多个依赖项时.g.MySQL或Redis. 正常情况下, 在开发过程中, 这些依赖项是在本地安装的——当迁移到生产环境时,需要重新执行这个步骤. 你可以通过使用码头工人 Compose来避免这些安装和配置部分.

一旦设置好,你就可以用一个工具启动并运行所有这些容器/依赖项 码头工人-compose起来 comm和.

11.

体积参数在a中有什么作用 码头工人运行 comm和?

查看答案

体积参数用于将容器中的目录与主机目录同步.

例如:

运行-v nginx-sites:/etc/nginx/sites-available nginx

这个命令挂载 nginx-sites 目录下的 /etc/nginx/sites-available 目录. 通过这种方式,您可以同步nginx站点,而无需重新启动它们所在的容器. 此外,您可以使用主机中的目录保护容器中生成的数据. 否则, 如果您删除了容器, 生成并存储在容器中的数据自然会被删除.

当你使用 体积 参数, 您可以使用相同的命令使用在前一个容器中生成的相同数据.

12.

码头工人和标准hypervisor虚拟化方法的主要区别是什么?

查看答案

使用像vSphere这样的管理程序的标准虚拟化, 每个应用程序都需要一个操作系统. 主机操作系统位于基础结构的底部, 并且必须在您的主机操作系统上安装管理程序. 然后,在虚拟机监控程序之上,为每个应用程序安装操作系统.

与码头工人, 码头工人守护进程位于主机操作系统和码头工人镜像之间, 代替管理程序. 码头工人镜像重用主机操作系统的一部分——因此每个应用程序都不需要单独的操作系统——但是您的应用程序仍然是隔离的,就像使用标准管理程序一样.

面试不仅仅是棘手的技术问题, 所以这些只是作为一个指南. 并不是每一个值得雇佣的“A”候选人都能回答所有的问题, 回答所有问题也不能保证成为A级考生. 一天结束的时候, 招聘仍然是一门艺术,一门科学,需要大量的工作.

为什么Toptal

厌倦了面试候选人? 不知道该问什么才能让你得到一份好工作?

让Toptal为你找到最合适的人.

现在聘请一名顶级码头工人开发人员

我们的独家网络码头工人开发人员

希望找到一份码头工人开发人员的工作?

让Toptal为你找到合适的工作.

作为码头工人开发人员申请

工作机会从我们的网络

提出面试问题

提交的问题和答案将被审查和编辑, 并可能会或可能不会选择张贴, 由Toptal全权决定, 有限责任公司.

*所有字段均为必填项

寻找码头工人开发人员?

寻找 码头工人开发人员? 查看Toptal的码头工人开发人员.

布莱恩Lenoski

自由码头工人开发人员

美国Toptal成员2017年7月6日

Brian有10年开发跨网络软件的经验, 移动, 桌面平台, 包括作为开发团队的一员,将公共交通引入苹果地图. Brian善于沟通,在各种规模的团队中都有过工作经验.

显示更多

大卫·菲

自由码头工人开发人员

美国Toptal成员2016年10月17日

David是一名软件工程师,也是霍博肯史蒂文斯理工学院的兼职计算机科学教授, NJ. 他们参与了许多初创企业,并在金融服务部门从事高带宽/高交易计算工作. 他们是c# /的专家.. NET和打印稿,从最初的测试版开始就使用了,他们经常使用 .. 网络核心和节点.在后端使用反应、Angular、Cordova和Ionic.

显示更多

Brian Kim

自由码头工人开发人员

美国Toptal成员2017年8月5日

Brian是一名后端开发人员,专注于在实现最佳响应时间的同时构建具有弹性和可扩展的系统. 他喜欢编写对产品需求进行强烈抽象的代码,同时考虑基础设施需求——生成易于部署和维护的软件.

显示更多

Toptal连接 排名前3% 世界各地的自由职业人才.

加入Toptal社区.

了解更多