Docker面试问题与答案

通过文卡特斯米2017年5月22日下午12:18:56

Docker面试问题与答案

Q1。是什么码头工人吗?

答:码头工人是一个包含容器形式的应用程序和所有依赖性的集装箱化平台,以确保您的应用程序在任何环境中无缝地工作它是开发或测试或制作。现在您应该解释码头工人容器。码头工人containers, wrap a piece of software in a complete filesystem that contains everything needed to run: code, runtime, system tools, system libraries etc. anything that can be installed on a server. This guarantees that the software will always run the same,regardless of its environment.You can refer the diagram shown below, as you can see that containers run on a single machine share the same operating system kernel, they start instantly as only apps need to start as the kernel is already running and uses less RAM.


注意:不像虚拟机有自己的操作系统码头工人容器使用主机操作系统

作为你在之前的回答中提到过虚拟机,所以下一个问题码头工人访谈问题博客将会涉及到两者之间的区别。

Q2。是什么码头工人形象吗?

答:码头工人形象是根源码头工人容器换句话说,,码头工人映像用于创建容器。映像是用build命令创建的,它们将在run命令启动时生成一个容器。图像存储在像registry.hub.docker.com这样的Docker注册表中,因为它们可以变得非常大,图像被设计成由其他图像层组成,允许在通过网络传输图像时发送最小数量的数据。

提示:要注意Dockerhub.来回答关于预购图像的问题。

第三季。是什么码头工人集装箱吗?

答:这是一个非常重要的问题,所以要确保你没有偏离主题,我建议你遵循以下提到的格式:码头工人容器包括应用程序及其所有依赖项,但与其他容器共享内核,在主机操作系统的用户空间中作为独立的进程运行。Docker容器没有绑定到任何特定的基础设施:它们运行在任何计算机、任何基础设施和任何云上。
现在解释一下如何创建一个Docker容器,Docker容器可以通过创建一个Docker映像然后运行它或者你可以使用Docker映像Dockerhub.码头工人容器基本上是的运行时实例码头工人的图像。

第四季度。是什么码头工人中心吗?

答:码头工人hub是一个基于云的注册服务,它允许你链接到代码库,构建并测试你的映像,存储手动推送的映像,并链接到Docker云,这样你就可以将映像部署到你的主机上。它为容器映像的发现、分发和变更管理、用户和团队协作以及整个开发管道的工作流自动化提供了一个集中的资源。

现在学习码头工人!

问题5。是如何码头工人与其他容器技术不同?

答:码头工人容器易于部署在云中。它可以获得更多在相同硬件上运行的应用程序而不是其他技术,它使开发人员可以轻松快速创建即可运行的容器化应用程序,并且它使管理和部署应用程序更容易。您甚至可以与您的应用程序共享容器。
如果你有更多的观点要补充,你可以这样做,但要确保你的答案中有上述的解释。

Q6。是什么码头工人群吗?

答:你应该从解释开始回答这个问题码头工人的申诉。

码头工人Swarm是Docker的原生集群。它将一个Docker主机池变成一个单一的、虚拟的Docker主机。Docker Swarm提供标准的Docker API,任何已经与Docker守护进程通信的工具都可以使用Swarm透明地扩展到多个主机。

我还会建议你包括一些支持的工具:

迄今为止。是什么Dockerfile用来做什么的?

答:码头工人可以通过读取Dockerfile中的指令自动构建映像。
现在我建议你给这个词下个小定义Dockerfle。

一个Dockerfile是一种文本文档,其中包含用户在命令行上调用以组装图像的所有命令。使用docker构建用户可以创建一个自动构建,它可以连续执行多个命令行指令。

处置。我可以使用json代替yaml为我的撰写文件码头工人吗?

答:您可以使用JSON而不是YAML进行编写文件,以使用撰写的JSON文件,指定要使用的文件名,例如:
docker-compose - f docker-compose。json起来

九方。告诉我们你是如何使用的码头工人在你过去的职位上?

答:解释你是如何使用的码头工人帮助快速部署。解释你是如何编写Docker脚本,以及如何将Docker与Puppet、Chef或Jenkins等工具一起使用。

如果你过去没有在这方面的实际经验码头工人并且过去在类似领域有使用其他工具的经验,诚实地解释同样的情况。在这种情况下,如果你能从功能上比较其他工具和Docker,那就很有意义了。

Q10。如何创建码头工人集装箱吗?

答:我建议你直接回答这个问题。

我们可以使用码头工人图像创建码头工人容器使用下面的命令:

码头工人执行-t -i name命令


这个命令将创建并启动一个容器。

你还应该添加,如果你想检查主机上所有运行状态的容器列表,使用下面的命令:

码头工人ps -

问题11:如何停止和重新启动码头工人集装箱吗?

答:为了停止码头工人容器,你可以使用下面的命令:

码头工人停止容器ID


现在重新启动码头工人容器可以使用:

码头工人重启容器ID


12个。做多远码头工人容器?

答:像谷歌和Twitter这样的大型web部署,以及像Heroku和dotCloud这样的平台提供商,都是在容器技术上运行的,其规模是数十万甚至数百万个容器并行运行。

myTectra Reviews _ Python, Django _ Kavya

问题。什么平台码头工人上运行?

答:我将这样回答这个问题码头工人只在Linux和云平台上运行,然后我将在下面提到Linux的供应商:

  • Ubuntu 12.04、13.04等
  • 软呢帽19/20+
  • RHEL 6.5 +
  • CentOS 6+
  • Gentoo
  • archlinux.
  • openSUSE 12.3 +
  • 关键3.0 +

  • Amazon EC2
  • 谷歌计算引擎
  • 微软Azure
  • Rackspace

请注意,码头工人不能在Windows或Mac上运行。

Q14。我的数据会丢失吗码头工人集装箱出口吗?

答:你可以这样回答,不,我不会丢失我的数据码头工人容器退出时,应用程序写入磁盘的任何数据都将保留在其容器中,直到您显式删除该容器为止。即使在容器停止之后,容器的文件系统仍然存在。

最喜欢。集装箱技术是新的吗?

答:不,不是。很长一段时间以来,在*NIX的世界中存在着不同的容器技术变体。例如:-Solaris容器(即Solaris Zones)-FreeBSD Jails-AIX工作负载分区(即wpar)-Linux OpenVZ

问题16。怎么样码头工人与其他容器技术不同?

答:好吧,码头工人这是一个相当新鲜的项目。它是在云时代创建的,所以很多事情都比其他容器技术做得更好。Docker背后的团队看起来充满了热情,这当然是非常好的。我不会在这里列出Docker的所有功能,但我会提到那些对我来说很重要的功能。

码头工人可以在任何基础架构上运行,您可以在笔记本电脑上运行Docker,也可以在云中运行它。

码头工人有一个容器中心,它基本上是一个可以下载和使用的容器存储库。您甚至可以与应用程序共享容器。

码头工人都有很好的文献记载。

篮。之间的区别码头工人图像和集装箱吗?

答:码头工人容器是docker映像的运行时实例。

码头工人Image没有状态,它的状态永远不会改变,因为它只是一组文件,而docker容器有它的执行状态。

的时候。用例的用途是什么码头工人吗?

答:嗯,我认为,码头工人在开发环境中非常有用。特别是用于测试目的。你可以在眨眼之间部署和重新部署应用程序。

此外,我相信您可以使用一些用例码头工人在生产中。想象一下,您有一些Node.js应用程序在Web上提供一些服务。

你真的需要运行完整的操作系统吗?

最后,如果码头工人是好是坏应该根据申请来决定。对于某些应用程序来说,这就足够了,而对于其他应用程序则不然。

问题19。容器(码头工人在我们的情况下)与虚拟机管理程序虚拟化(vSphere)不同?有什么好处?

答:要在虚拟化环境(例如vSphere)中运行应用程序,我们首先需要创建一个VM,在其中安装操作系统,然后才部署应用程序码头工人您所需要的只是在Docker中部署该应用程序。不需要额外的操作系统层。你只需要使用依赖库来部署应用程序,其余的(内核等)由Docker引擎提供。这个来自Docker官方网站的表格很清楚地展示了这一点。

Q20。如何知道集装箱状态?

答:只是火码头工人ps -列出主机上所有带stauts(运行或停止)的运行容器21.如何停止和重新启动容器?

要停止容器,我们可以使用码头工人停止容器id > <

要启动一个停止的容器,码头工人开始是命令

要重新启动正在运行的容器,码头工人重新启动<容器id >

的时候。你是怎么参与进来的码头工人项目吗?

答:我遇到码头工人就在所罗门开放源代码之后不久。我对LXC和容器有一些了解(以前也在IBM硬件上使用过Solaris Zones和LPAR),所以我决定尝试一下。我被它的简单易用所震撼。我之前与容器的互动让我觉得它们是需要大量调整和培养的复杂生物。Docker刚开始工作。当我看到Docker构建的以CI/ cd为中心的工作流时,我被说服了。

Q23处。码头工人是虚拟化和云计算的新热潮。为什么人们对它如此兴奋?

答:我认为这是轻量化的本质码头工人结合工作流程。它快速、易于使用,是一个以开发人员为中心的类似devops的工具。它的基本任务是:使代码易于打包和发送。开发人员希望工具能够抽象出许多过程的细节。他们只是想看到自己的代码工作。这导致了与系统管理员的各种冲突,当代码被分发出去,并证明在开发人员的环境之外不能工作时。Docker通过使你的代码尽可能的可移植,并使可移植性用户友好和简单来解决这个问题。

抓起。在你看来,最令人兴奋的潜在用途是什么码头工人吗?

答:这绝对是构建管道。我的意思是,我看到很多人使用容器进行超规模扩展,实际上,你可以在一个主机上获得很多容器,它们非常快。但这并没有让我感到兴奋,因为人们使用它来自动化他们的开发-测试-构建管道。

问题25。怎么样码头工人与标准虚拟化不同吗?

答:Docker是操作系统级虚拟化。与虚拟管理虚拟化不同,虚拟机通过中介层(“管理程序”(“虚拟机管理程序”)在物理硬件上运行,而是在操作系统内核顶部运行用户空间。这使得它们非常轻,非常快。

Q26。您认为云技术开发是否受开源开发的严重影响?

答:我认为开源软件与云计算密切相关。无论是在云中运行的软件,还是支持云的开发模型。开源软件很便宜,从效率和许可的角度来看,它通常是低摩擦的。

问题27。你觉得怎么样码头工人将改变虚拟化和云环境吗?你认为云技术有既定的发展轨迹,还是仍有重大变化的空间?

答:我认为Docker有许多理想的工作负载,正如我前面提到的,无论是在许多容器的超大规模世界中,还是在开发-测试-构建用例中。我非常希望很多公司和供应商能够接受Docker作为裸金属和云虚拟化的替代形式。

至于云技术的轨迹。我认为我们在过去几年中看到了重大变化。在我们完成之前,我认为他们会成为一个群。OpenStack问题以及它是否会成功作为IAAS替代或DIY云解决方案。我认为我们只触及了PaaS的潜力,并且在该空间里有很多增长和发展的空间。它也有趣的是,了解PAAS产品的能力如何发展以及它们是否增长以与消费者云的产品一起建立或连接。

Q28。你能简要介绍一下我们对你公司的期望吗码头工人在OSCON的演讲?

答:这是对Docker的入门速成课。它的目标用户是那些想要开始使用Docker的开发人员和系统管理员。我们将教如何使用的基础知识码头工人以及如何将其整合到你的日常工作流程中。

Q29。你的简历上写着"真正的工作"你是Docker的服务副总裁。你认为你的其他开源工作是一种爱好吗?

答:这主要是一个与我的搭档有关的笑话。像许多极客一样,我经常在电脑上,不断地解决问题或写东西。我的搭档开玩笑说我有两份工作:我的“真正”工作和我的开源工作。谢天谢地,在过去的几年里,在Puppet Labs和Docker这样的地方,我能够将我的激情与薪水结合起来。

Q30。为什么Docke是虚拟化和云计算的新热潮吗?

答:又到了OSCON时代,今年科技界对云基础设施的讨论非常热烈。更有趣的创业公司之一是码头工人这是一款极具潜力的超轻量级容器化应用

我采访了Docker的服务副总裁James Turnbull,他将在展会上开设一个Docker速成课程。除了了解Docker是什么,我们还讨论了云计算、开源贡献和找一份真正的工作。

你的简历上写着"真正的工作"你是Docker的服务副总裁。你认为你的其他开源工作是一种爱好吗?

那基本上是跟我搭档开的玩笑。像许多极客一样,我经常在我的电脑上,敲一个问题或写一些东西。我的伙伴开玩笑说我有两份工作:我的“真正”工作和我的开源工作。还好在过去的几年里,在木偶实验室和码头工人在美国,我能把我的热情和我的薪水结合起来。

问。为什么我的服务需要10秒钟重新创建或停止?

答:撰写停止尝试通过发送SIGTERM来停止容器。然后等待默认超时10秒。在超时之后,一个SIGKILL被发送到容器以强制杀死它。如果等待此超时,则意味着容器在接收到SIGTERM信号时没有关闭。

已经有很多关于进程在容器中处理信号的问题的文章。

要解决这个问题,请尝试以下方法:

确保你使用的是JSON格式的CMD和ENTRYPOINTDockerfile。

例如,使用["program", "arg1", "arg2"]而不是"program arg1 arg2"。使用字符串形式的原因码头工人使用不能正确处理信号的bash运行进程。Compose始终使用JSON格式,因此如果您在Compose文件中重写命令或入口点,请不要担心。

  • 如果可以,修改正在运行的应用程序,为SIGTERM添加显式信号处理程序。
  • 将stop_信号设置为应用程序知道如何处理的信号:
  • 网页:构建:。stop_signal:sigint.
  • 如果不能修改应用程序,可以将应用程序包装在一个轻量级的init系统(如s6)或一个信号代理(如dumb-init或tini)中。这两种包装器都可以正确地处理SIGTERM。

问。如何在同一主机上运行一个Compose文件的多个副本?

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

Q33。有什么区别向上的运行,开始

答:通常,你想要码头工人组成。耗尽用于启动或重启docker- component .yml中定义的所有服务。在默认的“附加”模式下,您将看到来自所有容器的所有日志。在“分离”模式(-d)中,Compose在启动容器后退出,但容器继续在后台运行。

docker-compose run命令用于运行“一次性”或“特别”任务。它需要您要运行的服务名,并且只启动正在运行的服务所依赖的服务的容器。使用“运行”可运行测试或执行管理任务,如向数据卷容器删除或添加数据。run命令的作用类似于docker run -ti,它向容器打开一个交互式终端,并返回与容器中进程的退出状态匹配的退出状态。

docker-compose start命令仅对重新启动先前创建但已停止的容器有用。它从不创建新的容器。

Q34。我可以使用json而不是yaml为我的撰写文件?

答:对Yaml是json的超集,因此任何json文件都应该是有效的Yaml。要将JSON文件与Compose一起使用,请指定要使用的文件名,例如:

docker-compose - f docker-compose。json起来

Q35。我应该包含我的代码吗复制/添加还是一个卷?

答:你可以使用Dockerfile中的COPY或add指令将你的代码添加到图像中。如果您需要将代码与Docker映像一起重新定位,例如当您将代码发送到另一个环境(生产环境、CI等)时,这将非常有用。

如果您希望对代码进行更改并立即看到它们的反映,例如当您正在开发代码且服务器支持热代码重新加载或实时重新加载时,您应该使用卷。

在某些情况下,您可能需要同时使用这两种方法。您可以使用COPY让映像包含代码,并在开发期间使用Compose文件中的卷来包含来自主机的代码。卷覆盖映像的目录内容。

Q36。我在哪里可以找到示例组合文件?

答:在github上有很多Compose文件的例子。

编写文档:

  • 安装组成
  • 开始学习Django
  • 开始使用Rails
  • 开始使用WordPress
  • 命令行参考
  • 撰写文件参考

的地区。您是否在操作上准备好管理多种语言/库/存储库?

答:去年,我们遇到了一个开发模块化应用程序的组织,该组织允许开发人员“使用他们想要的”来构建单个组件。这是一个不错的概念,但却是一场组织噩梦——追逐模块化设计的理想,而不考虑这种复杂性对其运营的影响。

那个组织感兴趣的码头工人,但我们强烈建议该组织在解决根本问题之前不要使用Docker。更容易地部署这些不同的应用程序并不能解决长期维护这些应用程序需要维护几个不同的开发栈的困难。

问题38。您是否已经有了日志记录、监视或成熟的部署解决方案?

答:您的应用程序可能已经有了一个框架,可以在正确的时间将日志和数据传送到正确的位置。要实现Docker,您不仅需要复制虚拟机环境中预期的日志记录行为,还需要为这些更改准备法规遵从性或治理团队。新工具正在进入市场码头工人空间一直存在,但许多现有解决方案的稳定性和成熟度都不匹配。部分更新、回滚和其他常见的部署任务可能需要重新设计,以适应容器化部署。

如果它没坏,就不要修理它。如果您已经投入了构建持续集成/持续交付(CI/CD)管道所需的工程时间,那么容器化遗留应用程序可能不值得投入时间。

问题39。云自动化将取代集装箱化吗?

答:在上个月的AWS Re:Invent大会上,亚马逊首席技术官Werner Vogels花了很大一部分时间在AWS Lambda上,这是一个基于代码部署基础设施的自动化工具。虽然Vogels确实提到了AWS的容器服务,但他对Lambda的关注表明,他认为对大多数开发人员来说,处理零基础设施比配置和部署容器更好。

容器在企业中迅速受到欢迎,并且肯定是许多专业CI/CD管道的重要组成部分。但作为技术专家和技术总监,我们有责任挑战新的方法和服务,并适当权衡早期采用的风险。我相信Docker对于理解集装箱化后果的组织来说是非常有效的——但前提是你提出了正确的问题。

Q40。你说ansible可以多花20倍的时间来供应,但是为什么呢?

答:Docker使用缓存来显著加快构建速度。Dockerfile中的每个命令都构建在另一个docker容器中,它的结果存储在单独的层中。层是建立在彼此之上的。

Docker扫描Dockerfile并尝试一个接一个地执行每个步骤,然后执行它探测该层是否已在缓存中。当缓存被命中时,构建步骤被跳过,并且从用户的角度来看几乎是即时的。

当您构建Dockerfile时,如果大多数变化的内容(如应用程序源代码)都位于底部,那么您将体验到即时构建。

中可以了解关于缓存的更多信息码头工人在这篇文章中。

令人惊讶的建筑物码头图像的另一种方式是使用良好的基础图像 - 您可以指定InfromCommand,然后只能做出必要的更改,而不是从头开始重建所有内容。这样,构建将更快。如果您在没有COUCHS的主机如连续集成服务器,则特别有益。

总之,使用Dockerfile构建docker映像比使用ansible更快,因为使用了docker缓存和良好的基础映像。此外,您可以完全消除供应,通过使用准备使用已配置的映像,例如stgresus。

$docker run--命名一些postgres-d postgres根本不安装postgres-它已经准备好运行了。

你也提到了码头工人允许多个应用程序在一台服务器上运行。

这取决于您的用例。您可能应该将不同的组件分割到单独的容器中。这会给你更多的灵活性。

Docker是非常轻量级的,运行容器很便宜,特别是如果你将它们存储在RAM中——它可以为每个http回调生成新的容器,但这不是非常实用。

在工作中,我使用一套五种不同类型的容器连接在一起。

在生产中,它们中的一些实际上被真实的机器甚至是机器集群所取代——但是应用程序级别的设置没有改变。

在这里你可以阅读更多关于链接容器的信息。

这是可能的,因为一切都是通过网络进行通信的。在dockerrun命令中指定链接时–docker桥接容器,并将包含链接子容器的IP和端口信息的环境变量注入父容器。

这样,在我的应用程序设置文件中,我可以从环境中读取这些值。在python中是:

import os VARIABLE = os. environment .get('VARIABLE')

有一个工具可以大大简化docker容器的使用,包括链接。它叫fig,你可以在这里读到更多。

最后,部署过程是什么样的停靠应用程序存储在git repo?

这取决于生产环境的外观。

部署流程示例如下:

-使用docker build构建一个应用。在代码目录中。

以及一个图像。

-将新图像推出到登记处码头工人推myorg模板。

通知远程应用服务器从注册表拉镜像并运行它(你也可以直接使用一些配置管理工具)。

-交换http代理中的端口。

-别再用旧容器了。

您可以考虑使用亚马逊弹性豆茎与码头或DOKKU。

Elastic beanstalk是一个功能强大的工具,可以为您完成大部分部署,并提供诸如自动伸缩、滚动更新、零部署部署等功能。

Dokku是一个非常简单的平台,类似于heroku的服务。

Q41。那么到底是什么码头工人? 关于“容器应用程序”的东西,对吗?

答:码头工人是一个开放的平台,IT运营团队和开发人员团队都使用它来构建、发布和运行他们的应用程序,为他们提供了敏捷性、可移植性和控制权,这是每个团队跨软件供应链所需要的。我们已经创建了一个标准的Docker容器来打包应用程序,包括应用程序运行所需的所有东西。这种标准化允许团队将应用程序容器化,并在任何环境、任何基础设施上运行它们,并使用任何语言编写它们。

Q42。什么是码头工人容器,它与VM有什么不同?集装箱化是否取代了我的虚拟化基础设施?

答:容器化与虚拟化有很大的不同。它始于码头工人engine,创建和运行容器(1个或多个)的工具,是Docker在任何具有兼容操作系统的物理、虚拟或云主机上安装的软件。容器化利用主机操作系统中的内核来运行多个根文件系统。我们称这些根文件系统为“容器”。每个容器在主机操作系统中共享内核,允许您在同一主机上运行多个Docker容器。与虚拟机不同,容器中没有操作系统。它们只是与其他容器共享底层内核。在主机上运行的每个容器都是完全隔离的,因此在同一主机上运行的应用程序彼此不知道(您可以使用Docker Networking创建多主机覆盖网络,使在主机上运行的容器能够相互通信)。

下图显示了左边的容器化和右边的虚拟化。请注意,容器化(左)与虚拟化(右)不同,不需要一个管理程序或多个操作系统。

Docker容器和传统虚拟机不是互斥的,所以不需要容器代替虚拟机。Docker容器实际上可以在vm中运行。这允许团队将每个服务容器化,并在每个虚拟机上运行多个Docker容器。

Q43。有什么好处“Dockerizing ?”

答:通过dockerized他们的环境,企业团队可以利用Docker容器作为服务平台(CaaS)。CaaS为开发团队和IT运营团队在其环境中提供了灵活性、可移植性和控制。

开发人员喜欢码头工人因为这让他们能够快速构建和发布应用程序。由于Docker容器是可移植的,可以在任何环境中运行(Docker Engine安装在物理、虚拟或云主机上),开发人员可以无缝地从开发、测试、登台和生产,而无需重新编码。这加快了应用程序的生命周期,并允许他们更频繁地发布应用程序。Docker容器也使得开发人员调试应用程序、创建更新的映像和快速发布应用程序的更新版本变得超级容易。

IT运维团队可以管理和保护他们的环境,同时允许开发人员以自助方式构建和发布应用程序。Docker CaaS平台由Docker支持,部署在本地,并充满了企业安全特性,如基于角色的访问控制、与LDAP/AD集成、图像签名等。

此外,IT运维团队有能力管理部署和扩展他们的Dockerized跨任何环境的应用程序。例如,Docker容器的可移植性允许团队将运行在AWS上的工作负载迁移到Azure上,而不需要重新编码,也不需要停机。团队还可以将工作负载从云环境迁移到物理数据中心,再迁移回来。这使得团队能够利用最佳的基础设施来满足他们的业务需求,而不是局限于特定的基础设施类型。

与虚拟化等传统工具相比,Docker容器具有轻量级的特性,再加上Docker容器在虚拟机中运行的能力,使团队能够将其基础设施优化20倍,并在此过程中节省资金。

Q44。从基础设施的角度来看,我需要什么码头工人?Docker是运行在我的数据中心中的硬件吗?它对我的环境有多费力?

答:Docker引擎是安装在主机(裸金属服务器、虚拟机或公有云实例)上的软件,是您需要的唯一“Docker基础设施”。该工具创建、运行和管理码头工人容器。所以实际上,根本不需要硬件安装。

Docker引擎本身非常轻量级,总重量约为80 MB。

Q45。你到底是什么意思停靠节点”?这个节点是本地的还是在云中?

答:Docker节点是指任何安装并运行Docker引擎的裸机服务器、VM或公共云实例。

Docker可以管理本地和云中的节点。Docker数据中心是一个本地解决方案,企业使用它来创建、管理、部署和扩展他们的应用程序,并得到了Docker团队的支持。它可以管理数据中心中的主机,也可以管理虚拟私有云或公共云提供商(AWS、Azure、Digital Ocean、SoftLayer等)中的主机。

Q46.DO.DO.码头工人容器打包了整个操作系统,使它更容易部署?

答:Docker容器不会对操作系统进行打包。它们将应用程序与应用程序运行所需的所有内容打包在一起。引擎安装在主机操作系统之上。容器共享操作系统内核,允许单个主机运行多个容器。

问题47。什么操作系统可以码头工人发动机在运转吗?

答:Docker引擎在所有现代Linux发行版上运行。我们还为Ubuntu,CentOS,OpenSuse,Rhel提供了一款商业支持的Docker发动机。还有在Windows Server 2016上运行的Docker技术预览。

Q48。Docker如何帮助管理我的基础设施?我要把所有的基础设施都集装箱起来吗?

答:Docker没有专注于管理基础架构。该平台是基础架构不可知的,管理您的应用程序并帮助确保它们可以顺利运行,无论基础架构类型如何通过Docker数据中心等解决方案。这为您的公司提供了您所需的敏捷性,可移植性和控制。您的团队负责管理实际基础架构。

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

答:至于可以运行的容器数量,这实际上取决于您的环境。应用程序的大小以及可用资源(如CPU)的数量都会影响可以在环境中运行的容器的数量。不幸的是,容器并不神奇。他们不能从零开始创建新的CPU。然而,它们确实提供了一种更有效地利用你的资源的方法。容器本身是超级轻量级的(记住,共享操作系统vs每个容器的单个操作系统),并且只在它们运行的进程中持续。不可改变的基础设施。

Q50。我必须做什么开始“Dockerization过程”。

答:对于您的团队来说,最好的入门方式是让开发人员下载Docker for Mac或Docker Windows。这些是Mac或Windows设备上Docker的本机安装。开发人员将从他们的应用程序中获取应用程序并创建Dockerfile。Dockerfile是指定所有应用程序配置的位置。它本质上是Docker形象的蓝图。该图像是应用程序的快照,是Docker引擎查看的对象,因此它知道正在旋转的容器应该是什么样子。

Q51。在我们的环境中有几个单片应用程序。但Docker只适用于微服务,对吧?

答:我添加这个是因为这是对Docker最大的误解之一。Docker完全可以用于容器单片应用以及基于微服务的应用。我们发现,大多数利用Docker容器化遗留单片应用程序的客户都能从Docker容器提供的隔离和可移植性中获益。请记住,Docker容器可以打包任何应用程序(单片或分布式),并将工作负载迁移到任何基础设施。正是这种可移植性使我们的企业客户能够接受迁移到混合云等策略。

对于微服务,客户通常将每个服务容器化,并使用Docker Compose等工具将这些多容器分布式应用程序作为单个正在运行的应用程序部署到其生产环境中。

我们甚至看到一些公司有一个混合的环境,随着时间的推移,他们慢慢地重组他们的dockerized单片应用程序,成为dockerized分布式应用程序。

点击这里了解更多码头工人

主题: Docker面试问题与答案 信息技术(IT)

评论

订阅

Python顶级课程

Python顶级课程

我们在myTectra帮助您选择正确的Python职业道路。以下是你可以选择的Python顶级课程。了解更多→

athirai切芒果泡菜

    更多…
    Baidu