原文地址:https://medium.com/edureka/devops-interview-questions-e91a4e6ecbf3
原文作者:Saurabh Kulshrestha
翻译君:CODING 戴维奥普斯

让我们看看你对容器和虚拟机的了解程度。

Q1. 什么是容器?

容器提供了从开发人员的笔记本电脑到测试环境、从类生产环境到生产环境一致的运行环境。

接下来给出容器的定义,容器由一个完整的运行环境组成:将一个应用程序,以及它所有的依赖项、库和其他二进制文件,以及运行它所需的配置文件打包到一起。将应用平台及其依赖项容器化,可以消除操作系统版本和底层基础架构间的差异。

Q2. 容器化相比虚拟化有哪些优势?

以下是容器化相对于虚拟化的优势:

  • 容器提供实时资源调配和可拓展性,虚拟机提供的资源调配速度较慢
  • 与虚拟机相比,容器是轻量级的
  • 与容器相比,虚拟机的性能有限
  • 与虚拟机相比,容器具有更好的资源利用率

Q3. 容器(在我们的例子中指 Docker)与管理程序虚拟化(vSphere)有何不同?有哪些好处?

以下是一些不同之处。请确保在你的回答中包含这些差异:

Q4. 什么是 Docker 镜像?

Docker 镜像是 Docker 容器的来源,换句话说,Docker 镜像用于创建容器。使用 build 命令创建镜像,当开始运行时,它们将生成一个容器。镜像存储在 Docker 注册表中,如 registry.hub.docker.com,因为它们可能变得非常大,镜像被设计成由其他镜像层组成,允许在通过网络传输镜像时发送最小的数据量。

提示:请关注 Dockerhub,以便回答有关预可用镜像的问题。

Q5. 什么是 Docker 容器?

这是一个非常重要的问题,所以请确保回答不偏离主题,我建议你遵循以下格式:
Docker 容器包括应用程序及其所有依赖项,但与其他容器共享内核,在主机操作系统的用户空间中作为独立进程运行。Docker 容器不绑定于任何特定的基础架构:它们可以在任何计算机、任何基础架构和任何云上运行。

现在解释如何创建 Docker 容器:可以通过创建 Docker 镜像然后运行它来创建 Docker 容器,也可以使用 Dockerhub 上已存在的 Docker 镜像。
Docker 容器基本上是 Docker 镜像的运行时实例。

Q6. 什么是 Docker Hub?

Docker Hub 是一个基于云的注册表服务,允许你链接到代码仓库,构建并测试你的镜像,存储手动推送的镜像以及指向 Docker 云的链接,以便你可以将镜像部署到主机。它为整个开发流程中的容器镜像发现、分发和变更管理、用户和团队协作以及工作流自动化提供了集中的资源管理。

Q7. Docker 与其他容器技术有何不同?

据我所知,你的答案应该包括以下几点:
Docker 容器易于在云上部署。与其他技术相比,它可以在相同硬件上运行更多应用程序,使开发人员可以轻松地快速创建可立即运行的容器化应用程序,并使管理和部署应用程序变得更加容易。你甚至可以与你的应用程序共享容器。

你也可以补充更多要点,但要确保上述内容在你的回答中。

Q8. 什么是 Docker Swarm?

它是 Docker 的本地集群,它将 Docker 主机池转换为单个虚拟 Docker 主机。Docker Swarm 提供标准的 Docker API,任何已经与 Docker 守护进程通信的工具都可以使用 Swarm 透明地扩展到多个主机。

我还建议你提及一些支持的工具:

  • Dokku
  • Docker Compose
  • Docker Machine
  • Jenkins

Q9. Dockerfile 的用途是什么?

Docker 可以通过从 Dockerfile 中读取指令来自动构建镜像。

Dockerfile 是一个配置文件,其中包含用户可以在命令行上调用以组合镜像的所有命令。使用 Docker 构建用户可以创建一个连续执行多个命令行指令的自动构建。

现在可能会有几个问题来测试你在 Docker 使用上的经验。

Q10. 我可以在 Docker 中使用 json 替代 yaml 来作为我的 compose 文件吗?

你可以使用 json 替代 yaml 来作为你的 compose 文件,使用带有 compose 的 json 文件,请指定文件名,例如:
docker-compose -f docker-compose.json up

Q11. 你在过去的职位中是如何使用 Docker 的?

这里需要解释你如何使用 Docker 来帮助进行快速部署,以及如何编写 Docker 脚本,并配合其他工具如 Puppet、Chef 或 Jenkins 等来使用 Docker。如果你在 Docker 方面缺乏以往的实践经验,但是在类似的领域中有过使用其他工具的经验,请诚实地告知并解释相同的内容。在这种情况下,如果您可以将其他工具与 Docker 在功能方面进行比较,这是有意义的。

Q12. 如何创建 Docker 容器?

关于这个我建议你给出一个直观的回答——可以使用以下命令使用 Docker 镜像创建 Docker 容器:
docker run -t -i
此命令将创建并启动容器。

你还应该提到,如果要检查主机上所有状态为正在运行的容器的列表,需要使用以下命令:
docker ps -a

Q13. 如何停止并重新启动 Docker 容器?

要停止 Docker 容器,可以使用以下命令:
docker stop

现在重新启动 Docker 容器,可以使用以下命令:
docker restart

Q14. Docker 容器可以扩展到什么程度?

像 Google 和 Twitter 这样的大型网络部署,以及像 Heroku 和 DotCloud 这样的平台供应商都运行在容器技术上,规模达到几十万甚至数百万个容器并行运行。

Q15. Docker 在什么平台上运行?

首先,我会说 Docker 通常在 Linux 和云平台上运行,然后我会提到以下 Linux 供应商:

  • Ubuntu 12.04、13.04 等
  • Fedora 19/20+
  • RHEL 6.5+
  • CentOS 6+
  • Gentoo
  • ArchLinux
  • openSUSE 12.3+
  • CRUX 3.0+

Q16.当 Docker 容器退出时,我会丢失数据吗?

你可以这样回答:当 Docker 容器退出时,我不会丢失我的数据。在你明确删除容器前,应用程序写入磁盘的任何数据都将保留在其容器中。即使在容器停止后,容器的文件系统仍然存在。

以上就是全部内容,我希望这些问题能帮助你破解 DevOps 面试!

2019 DevOps 必备面试题——容器化和虚拟化的更多相关文章

  1. 2019 DevOps 必备面试题——DevOps 理念篇

    原文地址:https://medium.com/edureka/devops-interview-questions-e91a4e6ecbf3 原文作者:Saurabh Kulshrestha 翻译君 ...

  2. 2019 DevOps 必备面试题——配置管理篇

    原文地址:https://medium.com/edureka/devops-interview-questions-e91a4e6ecbf3 原文作者:Saurabh Kulshrestha 翻译君 ...

  3. 2019 DevOps 必备面试题——持续集成篇

    原文地址:https://medium.com/edureka/devops-interview-questions-e91a4e6ecbf3 原文作者:Saurabh Kulshrestha 翻译君 ...

  4. 2019 DevOps 必备面试题——代码版本控制篇

    原文地址:https://medium.com/edureka/devops-interview-questions-e91a4e6ecbf3 原文作者:Saurabh Kulshrestha 翻译君 ...

  5. 容器化的 DevOps 工作流

    对于 devops 来说,容器技术绝对是我们笑傲江湖的法宝.本文通过一个小 demo 来介绍如何使用容器技术来改进我们的 devops 工作流. devops 的日常工作中难免会有一些繁琐的重复性劳动 ...

  6. 【转帖】使用容器化和 Docker 实现 DevOps 的基础知识

    使用容器化和 Docker 实现 DevOps 的基础知识 https://www.kubernetes.org.cn/6730.html 2020-02-24 15:20 灵雀云 分类:容器 阅读( ...

  7. Azure Devops实践(5)- 构建springboot项目打包docker镜像及容器化部署

    使用Azure Devops构建java springboot项目,创建镜像并容器化部署 1.创建一个springboot项目,我用现有的项目 目录结构如下,使用provider项目 在根目录下添加D ...

  8. 2019 DevOps 技术指南

    原文链接:https://hackernoon.com/the-2018-devops-roadmap-31588d8670cb 原文作者:javinpaul 翻译君:CODING 戴维奥普斯 写在前 ...

  9. 2019年 Java 面试题解析

    2019年 Java 面试题解析 转载地址:https://www.cnblogs.com/Zz-maker/p/11193930.html 作者: Zz_maker 包含的模块: 本文分为十九个模块 ...

随机推荐

  1. linux实用小命令--查看文本内容

    一.cat命令 $ cat [参数]filename 这还有一些可以和cat命令一起用的参数,可能对你有所帮助. 1.-n 参数会所有的行加上行号: $ cat -n test1 2.这个功能在检查脚 ...

  2. luogu P3152 正整数序列

    题目描述 kkk制造了一个序列,这个序列里的数全是由正整数构成的.你别认为她的数列很神奇--其实就是1, 2, -, n而已.当然,n是给定的.kkk的同学lzn认为0是一个好数字(看上去很饱满有木有 ...

  3. echarts 堆叠柱状图 + 渐变柱状图

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. go-channel处理高并发请求

    目录 go-channel处理高并发请求 一.Channel简介 二.处理包并发请求 三.测试 1.测试工具 2.测试结果 go-channel处理高并发请求 最近看了一篇文章讲解怎样使用go-cha ...

  5. 数据库Oracle 数字,字符,日期之间的相互转换

    数据类型转换分为俩种 . 隐式数据类型转换:当源数据的类型和目标数据的类型不同的时候,如果没有转换函数,就会发生隐式转换,也称自动转换. 对于直接赋值转换:  对于表达式赋值: 隐式转换的问题: 性能 ...

  6. JavaScript基础3

    While循环 在指定条件为真时循环执行代码块.先确定条件再执行代码 语法 while(条件) { 需要执行的代码 } 条件中所用变量如果没有值,循环就不会停下,会导致浏览器崩溃: do...whil ...

  7. ZOJ 2112 Dynamic Rankings(树状数组+主席树)

    The Company Dynamic Rankings has developed a new kind of computer that is no longer satisfied with t ...

  8. Rar5.20 key

    key如下,使用方法自行百度,^_^ RAR registration dataState Grid Corporation Of China50000 PC usage licenseUID=582 ...

  9. 你不知道的JavaScript(上)this和对象原型(三)

    第四章  混核对象“类” 1.理论 面向对象编程强调的是数据和操作数据的行为本质上是互相关联的.实例化,继承,多态性 javascript中只有对象,并不存在可以被实例化的“类”.一个对象并不会被复制 ...

  10. this的绑定(四种绑定)+ 箭头函数 的this

    一.this的默认绑定 当一个函数没有明确的调用对象的时候,也就是单纯作为独立函数调用的时候,将对函数的this使用默认绑定:绑定到全局的window对象 例子1: function foo(){ c ...