docker面试题目,没学过docker能学会k8s吗
雌三醇环戊醚
DevOps需要什么?
主题:DevOps难度:
现在的公司不是发布大量的功能,而是尝试把小功能传递给客户。这有很多好处,比如客户反馈快,软件质量更好等等,导致客户满意度很高。为了实现这一目标,公司必须:
增加部署频率
降低新版本的故障率
缩短维修之间的准备时间
当新版本崩溃时,平均恢复时间更快
DevOps满足所有这些要求,并有助于实现无缝软件交付。
Q2
DevOps有哪些优势?
主题:DevOps难度:
技术优势:
连续软件交付
需要解决不太复杂的问题。
更快解决问题。
商业利益:
更快地提供功能。
更稳定的运营环境
更多的时间可以用来增加价值(而不是维修/维护)
Q3
CI(持续集成)服务器的功能是什么?主题:DevOps
难度:
CI服务器的功能是持续集成不同开发人员对存储库所做的所有更改,并检查编译错误。它需要一天构建几次代码,最好是在每次提交之后,这样它就可以在发生损害时检测到是哪个提交导致了损害。
Q4
什么是docker?
主题:Docker难度:
Docker是一个容器化的平台,它将应用程序及其所有依赖项以容器的形式打包在一起,以确保应用程序在任何环境下都能无缝运行,无论是开发环境、测试环境还是生产环境。
Docker容器,它将一个软件包放在一个完整的文件系统中,这个文件系统包含了运行所需的一切:代码、运行时、系统工具、系统库以及任何可以安装在服务器上的东西。
不管软件的环境如何,它总是运行相同的程序。
Q5
如何使用Docker构建与环境无关的系统?
主题:Docker难度:
有三个主要功能有助于实现这一目标:
卷
环境变量注入
只读文件系统
Q6
Dockerfile中的命令COPY和ADD命令有什么区别?
主题:Docker难度:
总的来说,虽然ADD和COPY在功能上差不多,但是COPY是首选。
那是因为它比加法更容易理解。COPY只支持将本地文件复制到容器中,而ADD有一些功能(比如只支持本地的tar提取和远程URL支持),这些功能并不明显。因此,ADD的最佳用法是自动将本地tar文件提取到镜像中,比如ADD rootfs.tar.xz/.
Q7
什么是Docker镜像?
主题:Docker难度:
Docker图像是Docker容器的源代码。换句话说,Docker图像用于创建容器。使用build命令创建镜像,当使用run启动时,它们将生成容器。镜子存放在registry.hub.docker.com码头登记处。由于镜像可能会变得非常大,因此它们被设计为由其他镜像层组成,从而允许在网络上传输图像时发送最少量的数据。
Q8
什么是Docker容器?
主题:Docker难度:
Docker容器包括应用程序及其所有依赖项,但它与其他容器共享内核,并在主机操作系统的用户空间中作为独立的进程运行。Docker容器不依赖于任何特定的基础设施:它们可以在任何计算机、任何基础设施和任何云上运行。
Q9
什么是Docker Hub?
主题:Docker难度:
Docker hub是一个基于云的注册服务,允许您链接到代码库,构建映像并测试它们,存储手动推送的映像以及到Docker cloud的链接,以便您可以将映像部署到主机。它为容器发现、分发和变更管理、用户和团队协作以及整个开发过程中的工作流自动化提供了集中的资源。
10
Docker容器在任何给定时间点可以处于什么状态?
主题:Docker难度:
在任何给定的时间点,Docker容器可以有四种状态。如下所示:
奔跑
暂停了。
重新开始
退出。
11
有没有办法识别Docker容器的状态?
主题:Docker难度:
我们可以通过运行命令来识别Docker容器的状态。
docker PSa
这将依次列出所有可用的docker容器及其在主机上的相应状态。我们可以很容易地识别感兴趣的容器,从而检查它们的状态。
12
Dockerfile中最常见的指令是什么?
主题:Docker难度:
Dockerfile中的一些常见指令如下:
FROM:我们使用FROM来设置后续指令的基本镜像。在每个有效的Dockerfile文件中,FROM是第一条指令。
标签:我们使用标签根据项目、模块、许可等来组织我们的图像。我们也可以使用标签来帮助自动化。在LABEL中,我们指定了一个键-值对,以后可以用它来以编程方式处理Dockerfile。
运行:我们使用运行命令来执行当前图像上面的新层中的任何指令。通过每个RUN命令,我们向映像添加一些东西,并在Dockerfile的后续步骤中使用它。
CMD:我们使用CMD命令来提供执行容器的默认值。在Dockerfile中,如果我们包含多个CMD命令,那么只使用最后一个命令。
13
什么类型的应用程序 - 无状态或有状态更适合Docker容器?
主题:Docker难度:
最好为Docker容器创建一个无状态的应用程序。我们可以从应用程序中创建一个容器,并从应用程序中取出可配置的状态参数。现在我们可以用不同的参数在生产环境和QA环境中运行同一个容器。这有助于在不同的场景中重用相同的图像。此外,无状态应用程序比有状态应用程序更容易使用Docker容器进行扩展。
14
解释基本的Docker使用工作流程
主题:Docker难度:
一切都是从Dockerfile开始的。Dockerfile是图像的源代码。
创建Dockerfile后,可以构建它来创建容器的镜像。只是图像“源代码”的“编译版本”,即Dockerfile。
获得容器的映像后,应该使用注册表重新分发容器。注册中心就像一个git存储库——你可以推和拉图片。
接下来,您可以使用这个映像来运行容器。在许多方面,运行中的容器非常类似于虚拟机(但没有管理程序)。
- docker构建- docker运行-dt - docker执行-it -
docker file - Image - Container - Bash
- - - -
^
码头工人拉动
-
注册表
- 15
Docker Image和Layer有什么区别?
主题:Docker难度:
图片:Docker mirror由一系列只读层构建而成。
层:每一层代表Dockerfile中的指令。
下面的docker文件包含四个命令,每个命令创建一个层。
来自Ubuntu: 15.04副本。/apprunmake/app cmd python/app/app . py重要的是,每一层都只是与前一层的一组差异。
16
什么是虚拟化?
主题:Docker难度:
在其构想的形式中,虚拟化被认为是一种逻辑划分大型机以允许多个应用程序同时运行的方法。然而,当公司和开源社区能够以某种方式提供处理特权指令的方法,并允许多个操作系统在单个基于x86的系统上同时运行时,情况发生了巨大的变化。
实际效果是,虚拟化允许您在同一硬件上运行两个完全不同的操作系统。每个客户操作系统都经历了引导、加载内核等所有过程。你可以有非常严格的安全性,比如来宾操作系统不能完全访问主机操作系统或者其他客户,从而完全混淆。
虚拟化方法可以根据它们如何模仿客户操作系统的硬件和模拟客户操作环境来分类。虚拟化有三种主要类型:
模仿
半虚拟化
基于容器的虚拟化
17
什么是管理程序?
主题:Docker难度:
虚拟机管理程序负责创建用户虚拟机运行的虚拟环境。它监督用户系统,并确保在必要时将资源分配给客户。hypervisor位于物理机和虚拟机之间,为虚拟机提供虚拟化服务。为了实现它,它拦截虚拟机上的客户操作系统操作,并模拟主机操作系统上的操作。
虚拟化技术的快速发展(主要在云中)通过允许在一个物理服务器上创建多个虚拟服务器,使用虚拟机管理程序(如Xen、VMware Player、KVM等)进一步促进了虚拟化的使用。)以及在商用处理器(如英特尔VT AN)中集成硬件支持。例如英特尔VT和AMD-V.
18
什么是Docker Swarm?
主题:Docker难度:
Docker Swarm是Docker的集群管理工具。它将Docker主机池转变为虚拟Docker主机。Docker Swarm提供了标准的Docker API,任何与Docker daemon进行过通信的工具都可以使用Swarm扩展到多台主机。
19
您将如何监控生产中的Docker?
主题:Docker难度:
docker提供了docker stats和docker events等工具来监控Docker的生产。我们可以使用这些命令来获得重要统计数据的报告。
Docker stats:当我们用容器ID调用docker stats时,我们得到CPU、内存使用情况等。集装箱的。它类似于Linux中的top命令。
Docker events:Docker events是查看Docker守护进程中正在进行的任务的命令。
一些常见的Docker事件有:附加、提交、终止、分离、重命名、销毁等。我们还可以使用各种选项来限制或过滤我们感兴趣的事件。