Stephen主梁

软件工程师在申请下一份工作时,需要做好回答Docker面试问题的准备。为什么?近年来,Docker的使用呈指数级增长命名为第三个最常用的平台在2019年调查中的Linux和Windows之后。

Docker是一个庞大的生态系统,具有许多工具,关键词和主题在其中知道。为了帮助您在招聘经理前的时间,这里有20多个最常见的Docker-relation问题和学习接下来面试的答案。

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

Docker CLI(命令行界面)和Docker守护程序经常会混淆。守护进程是举重的程序,其作为代表服务器的Docker引擎。守护程序构建图像并管理创建的容器。

CLI是与守护程序互动的Docker客户端。CLI接收命令并将其送入守护程序。

Docker和Kubernetes:完整的指南

最后更新于3月2021日

  • 335讲座
  • 各级
4.6 (37,206)

使用Kubernetes构建,测试和部署Docker应用程序,同时学习生产式开发工作流程|bob外围官网由斯蒂芬格莱德里

探索课程

问:什么是最重要的Docker CLI命令?

最重要的命令是您所有时间使用的命令,因此列出了您每天使用的那些。

问题:在容器中运行数据库有什么考虑因素?

请记住,Docker容器在本质上是短暂的。当容器被删除时,将永远丢失其中的数据。

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

问:创建Docker映像的最佳方法是什么?

始终使用dockerfile创建Docker图像。Dockerfiles是文本文档,用于指定守护程序应使用的清晰系列步骤来创建图像。他们很容易阅读和改变其他工程师。

不要通过制作容器创建图像,手动更改它,然后运行“Docker提交”。这可能会创建图像,但是对其他工程师重现图像将具有挑战性。

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

调试运行容器有一些方法:

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

技巧的问题!Dockerfile的容器既不是JSON也不是YAML。这种语法只在docker-compose文件中使用。

在Dockerfile中使用的语法没有一个集合名。你应该说Dockerfiles包含一系列Docker命令。

问题:容器是否可以完全访问主机操作系统?

默认情况下,码头容器与主机操作系统隔离。容器可以通过设置“特权”标志来访问主机操作系统。使用“特权”标志创建容器时,它将完全访问主机操作系统。

问题:为什么你会用“特权”国旗运行一个容器?

很少有理由运行一个Docker容器的“特权”标志。最常见的原因是您希望容器能够自己创建容器。

问:“stop”和“kill”CLI命令有什么区别?

“stop”命令将“sigterm”信号发送到主要过程。Docker然后等待退出的过程。如果此过程不退出,Docker将在稍后十秒钟发送“sigkill”信号。

“kill”命令立即向主要过程发送“sigkill”信号。

问题:'Attach'和'Exec'命令之间有什么区别?

使用' exec '命令在容器内运行命令。您运行的命令可以在容器内启动一个新进程。

“附加”命令与主要过程的流交互。特别是,它将与STDOUT,STDERR和STDIN流互动。

总结:在要在容器中运行新命令时,请使用'exec'。使用“Attach”命令与主要过程进行交互。

问:“diff”命令用于什么?

' diff '命令列出容器内所有更改过的文件。这将只列出自创建容器以来所做的更改。

问:所有项目都需要使用Docker Hub吗?

不,所有项目都不需要Docker Hub。如果我们需要使用托管在那里的图像,我们只使用Docker Hub。

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

问:如何约束容器可以使用的资源?

您可以通过在' docker run '命令中添加一些选项来限制容器使用的资源。

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

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

问:你用Docker CLI创建的所有图像都会自动发布到Docker Hub这样的公共注册中心吗?

不,您构建的映像不会自动推送到公共注册中心。构建的映像只能在构建它们的机器上可用。要使该映像在其他地方可用,必须手动将其推到公共注册中心。

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

凡好

cons

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

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

问题:为什么要在构建图像时忽略Docker忽略目录?

Docker应在构建图像时处理所有相关依赖项。如果您为Docker提供依赖项的副本,则会在图像构建期间覆盖它们。通过忽略依赖项,它确保构建时间快速。

问题:命令'创建','start'和'运行'之间有什么区别?

问题:集装箱崩溃的主要过程发生了什么?

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

问题:如何创建Docker图像?

有两种方法可以创建Docker图像。

1.您可以使用dockerfile使用“docker build”命令创建图像

2.还通过在容器上运行“docker提交”命令来创建图像

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

Docker图像采用许多层。每个图层都表示对文件系统的一组更改。

创建Docker映像时,它会使用空文件系统开始。当Dockerfile运行的每个步骤时,另一层都会添加到图像中。

问:两个运行中的容器是否可以共享图像中的相同层?

是的!创建容器时,Docker将新图层添加到底层图像中。对容器文件系统所做的任何更改都将写入此图层。

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

这些原始图层中的文件仅通过读取操作访问。你不能通过容器写信给他们。

问题:使用Docker CLI运行单个容器很简单。管理许多集装箱更具挑战性。什么期限是指管理许多容器的过程?此外,管理许多容器存在的工具?

管理多个容器被称为“Orchestration”。

容器'Orchestration有两个流行的工具:

  1. Docker的官方解决方案Docker Swarm。
  2. Kubernetes是Google首次引入的流行开源解决方案。

每个工具都创建容器并管理它们的生命周期。它们还用于处理不同容器之间的网络连接。

问题:想象一下,您创建一个1GB大小的图像。然后,您将在此图像中创建五个单独的容器。在每个图像中,您创建一个大小为200MB的文件。整个操作用多少磁盘空间使用?

从映像创建的每个容器使用的磁盘空间可以忽略不计。制作一组5个容器不会消耗大量的空间。但是,在每个容器中生成的每个200MB文件都消耗200MB。

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

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

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

监视容器的最简单方法是使用“Docker PS”命令。这将打印出所有运行容器的状态。

使用“Docker Attach”命令也很容易监控容器。这将从容器中打印日志,显示主要过程的STDOUT和STDERR流。

通过使用“Docker Logs”命令,通过STDOUT和STDERR发出的所有过去的日志。这对于看到过去已经完成了什么是有用的。

问题:列出DockerFile中显示的一些不同命令。每个命令的目的是什么?

Dockerfiles包含许多不同的命令。

页面上次更新:2020年4月

Docker的顶级课程

Docker -为Java开发人员操作
Richard Chesterwood,虚拟结对程序员
4.7 (1693)
收视率最高
Docker Mastery:用Kubernetes +来自Docker Captain的Swarm
BRET FISHER,DOCKER船长计划
4.6 (46,494)
畅销书
Docker和Kubernetes:完整的指南
Stephen主梁
4.6 (37,206)
绝对初学者的Docker - 手on - devops
Mumshad Mannambeth,Kodekloud培训
4.6 (22,061)
畅销书
Devops基本面 - 带AWS + Docker + Ansible + Jenkins的CI / CD
拉胡尔谢蒂
4.5 (1,430)
畅销书
Docker,从零到英雄:成为Devops Docker Master
里卡多·安德烈·冈萨雷斯·戈麦斯
4.5 (860)
Docker船长的Node.js项目的Docker
BRET FISHER,DOCKER船长计划
4.6 (1003)
使用Dockers (DevOps)部署机器学习和NLP模型
联合国环境署专业人员联合网
4.3 (803)
登录Kubernetes与EFK堆栈|的完整指南
Nana Janashia,Docker Captain计划
4.8 (183)
畅销书

更多码头课程

码头学生也学习

让你的团队。领导行业。

通过Udemy为Business获取组织的在线课程和数字学习工具库的订阅。

请求演示

斯蒂芬·莱特德课程

Modern React with Redux[2020更新]
Stephen主梁
4.7 (66802)
畅销书
高级React和Redux
Stephen主梁
4.6 (9,776)
流星对实时应用的反应
Stephen主梁
4.7 (1,928)
畅销书
ES6 JavaScript:完整的开发人员指南
Stephen主梁
4.5 (9,384)
完整的Elixir和Phoenix Bootcamp
Stephen主梁
4.5 (5589)
畅销书
完整的反应原生+钩子课程[2020版]
Stephen主梁
4.6 (36998)
畅销书
综合开发人员指南指南MongoDB
Stephen主梁
4.4 (6193)
GraphQL与React:完整的开发人员指南
Stephen主梁
4.5 (7614)
畅销书
反应本地:高级概念
Stephen主梁
4.3 (4706)

斯蒂芬·莱特德课程