原文地址: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. react-native 相对项目路径导入组件 ___ babel-plugin-module-resolver

    babel-plugin-module-resolver 是一个Babel模块解析插件, 在.babelrc中可以配置模块的导入搜索路径. 为模块添加一个新的解析器.这个插件允许你添加新的" ...

  2. HDU3849-By Recognizing These Guys, We Find Social Networks Useful(无向图的桥)

    By Recognizing These Guys, We Find Social Networks Useful Time Limit: 2000/1000 MS (Java/Others)     ...

  3. Docker系列-(3) Docker-compose使用与负载均衡

    上一篇文章介绍了docker镜像的制作与发布,本文主要介绍实际docker工程部署中经常用到的docker-compose工具,以及docker的网络配置和负载均衡. Docker-compose介绍 ...

  4. 【JS】341- 移动端滚动穿透的6种解决方案

    前言 相信能看到这篇文章的你,已经是遇到了这个问题.我就不gif展示问题效果了. 鉴于此问题是面试的常客,故特地针对滚动穿透这个疑难杂症,整理了六个解决方案. 各方法操作难易不同,分别针对弹层和bod ...

  5. ES6中export default与export的区别

    1.export default 和export都可以用于导出常量,函数,文件,模块等: 2.可以在模块中通过import+(常量 | 函数 | 文件 | 模块)名的方式,将其导入,以便能够对其进行使 ...

  6. 分布式事务解决方案,中间件 Seata 的设计原理详解

    作者:张乘辉 前言 在微服务架构体系下,我们可以按照业务模块分层设计,单独部署,减轻了服务部署压力,也解耦了业务的耦合,避免了应用逐渐变成一个庞然怪物,从而可以轻松扩展,在某些服务出现故障时也不会影响 ...

  7. C语言每日一练——第5题

    一.题目要求 选出大于100小于1000的所有个位数与十位数字之和被10除所得余数恰好是百位数字的所有数字(如293).计算并输出上述这些素数的个数cnt以及这些素数值得sum,最后把结果cnt和su ...

  8. 函数式编程 -> Lambda

    一.函数式编程 函数式编程,同面向对象编程.指令式编程一样,是一种软件编程范式,在多种编程语言中都有应用.百科词条中有很学术化的解释,但理解起来并不容易.不过,我们可以借助于数学中函数的概念,来理解函 ...

  9. 安装lispbox出现:error while loading shared libraries: libjpeg.so.62: cannot open shared object file: No such file or directory

    如下图,运行lispbox出现如下报错(第一个命令): 检索之后发现解决办法:Solution to libjpeg.so.62 输入一下两条命令(第二条也必须执行): sudo apt-get up ...

  10. 历史上的今天接口api

    ip地址查询 www.ipip5.com 为大家提供历史上的今天接口api,提供txt和json两种返回格式.   1.txt文本格式 http://www.ipip5.com/today/api.p ...