Stephen主梁

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

码头工人是一个巨大的生态系统有很多工具,关键字和科目内它知道。为了帮助你的王牌你的时间在招聘经理的面前,这里是最常见的多克 - 关系问题和答案,以研究为您的下一次面试20+。

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

泊坞窗CLI(命令行界面)和码头工人守护得到经常被混淆。该守护进程是做繁重,作为代表的服务器泊坞窗引擎运作程序。守护程序建立图像并管理创建容器。

CLI是泊坞窗客户端与后台交互。该CLI接收命令,并将其送入守护进程。

Docker和Kubernetes:完整的指南

最后更新2020年8月

  • 317个讲座
  • 所有级别
4.6 (30431)

在学习生产风格的开发工作流|时,使用Kubernetes构建、测试和部署Docker应用程序betwayapp下载安装斯蒂芬·主梁

探索课程

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

最重要的命令是你用所有的时间的,所以列出这些你日常的基础上使用。

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

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

如果你要运行一个容器的数据库中,你需要一个数据持久化策略。这通常是通过安装在容器的容积来完成。然后,数据库可以存储这个量的它的数据内。如果容器删除,此数据将打通量依然存在。然后,我们可以创建一个新的容器并安装相同的体积将其重新使用该数据。

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

始终创建使用Dockerfile泊坞的图像。Dockerfiles是指定一个明确的一系列步骤守护程序应该使用它来创建一个图像的文本文档。他们很容易对其他工程师读取和改变。

不要做一个容器中,用手改变它,然后运行“泊坞窗提交”创建图像。这可能会创建一个图像,但它会挑战其他工程师重现图像。

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

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

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

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

Dockerfile中使用的语法没有设置名称。应该说Dockerfiles包含一系列Docker命令。

问题:你的容器可以完全访问他们的主机操作系统?

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

问:为什么你会运行与“特权”标志的容器?

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

问:“停止”和“杀死”CLI命令有什么区别?

所述“停止”命令发送“SIGTERM”信号到主处理。泊坞窗然后等待进程退出。如果进程不退出,码头工人将在稍后发送“SIGKILL”信号十秒钟。

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

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

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

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

总结:使用“EXEC”当你想运行在容器中的新命令。使用“连接”命令进行互动与主过程。

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

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

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

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

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

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

通过向“docker run”命令添加一些选项,可以限制容器使用的资源。

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

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

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

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

问题:在应用程序开发过程中使用Docker的优点和缺点是什么?betwayapp下载安装

优点

缺点

问:当建立一个新的形象,你怎么能告诉泊坞窗CLI忽略目录中的所有文件?

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

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

泊坞窗应建立处理的图像时,安装所有相关的依赖性。如果你给码头工人的依赖关系的副本,他们将图像生成过程中被覆盖。由于忽略依赖关系,它确保生成时间会迅速。

问:有什么命令“创造”,“开始”和“运行”之间的区别?

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

这取决于对应于集装箱在构建时的重新启动策略。

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

创建Docker映像有两种方法。

1.您可以通过使用与Dockerfile的“泊坞窗构建”命令创建一个图像

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

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

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

当创建一个码头工人的形象,它开始与一个空文件系统。作为Dockerfile运行的每个步骤中,另一个层被添加到图像。

问:两个正在运行的容器可以共享一个映像的相同层吗?

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

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

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

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

管理一个以上的容器被称为“编排”。

有集装箱“编排”两个流行的工具:

  1. Docker Swarm,官方Docker解决方案。
  2. Kubernetes,首先由谷歌推出了一款流行的开源解决方案。

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

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

每个从映像创建的容器使用的磁盘空间微不足道。制作一组五个容器并不会占用大量空间。然而,每个容器中生成的200MB文件确实消耗200MB。

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

创建一个容器从图像中不重复的底层图像的层。

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

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

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

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

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

Dockerfiles包含许多不同的命令。

最后更新日期:2020年4月

Docker的顶级课程

为绝对初学者学习Docker
艾哈迈德Tabana
4.4 (57)
Docker为绝对初学者-手- DevOps
Mumshad Mannambeth, KodeKloud训练
4.6 (16485)
畅销书
码头工人对Node.js的项目从一个码头工人船长
布雷特·费舍尔,码头工人领袖计划
4.6 (808)
Docker——供Java开发人员使用
Richard Chesterwood,虚拟结对程序员
4.6 (1393)
Docker - SWARM -动手- DevOps
Mumshad Mannambeth, KodeKloud训练
4.6 (1056)
码头工人掌握:Kubernetes +群从码头工人的队长
布雷特·费舍尔,码头工人领袖计划
4.6 (40003)
畅销书
Docker和Kubernetes:完整的指南
Stephen主梁
4.6 (30431)
建立与Python和Django的后端REST API - 高级
马克·温特伯顿,布鲁克卢瑟福
4.6 (2682)
畅销书

更多的码头工人的课程

泊坞窗的学生也学习

让你的团队。领导行业。

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

请求一个演示

由斯蒂芬·Grider课程

现代与回来的反应(2020年更新)
Stephen主梁
4.6 (59457)
畅销书
先进的反应和回来的
Stephen主梁
4.5 (9284)
流星和反应的实时应用
Stephen主梁
4.7 (1887)
畅销书
ES6的Javascript:完全开发人员指南
Stephen主梁
4.6 (8787)
完整药剂和菲尼克斯训练营
Stephen主梁
4.6 (5096)
畅销书
完整阵营本地+鱼钩课程[2020版]
Stephen主梁
4.6 (33465)
畅销书
MongoDB的完整开发人员指南
Stephen主梁
4.5 (5838)
Webpack 2:完整的开发人员指南
Stephen主梁
4.7 (4761)
反应本土:先进的概念
Stephen主梁
4.1 (4452)

由斯蒂芬·Grider课程