2019 DevOps 必备面试题——容器化和虚拟化
原文地址: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 面试!
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
容器服务及相关云环境几次故障和问题排查记录
1. 镜像仓库被设置为公有,导致镜像泄露风险: 错误现象: 公有镜像仓库可能会被云上其它用户拉取,导致泄露镜像安全风险;部分运维或者开发同学,因为没有设置准确的 secret 到 Deployment,为了解决无法拉取镜像问题,直接开放镜像仓库为公有。 解决方法: 镜像仓库的命名空间一定要设置为私有,准确设置绑定云效中docker 镜像账号,通过云效发布应用; 严格设定容器镜像仓库的维护权限; 2. 镜像拉取失败: 错误现象: ## 查看 pod 部署日志 kubectl logs {pod} ## 错误信息 Failed to pull image "registry-vpc.{region_id}.aliyuncs.com/{app_name}-daily/{app_n
- 下一篇
新规上线,为你盘点百元产品薅羊毛大法
不足百元产品也可以享受返佣啦!!!相信大家对9月16日发布的新规有所了解,下面就由小编为大家带来最全的“薅羊毛”大法。新规对0元以上的产品都进行了返佣,所以曾经那些百元以下的产品也加入了返利大军,小编已经为大家全部找出来,供大家参考选择。 企业应用中心-一站式解决企业需求 (1)公司注册---进度实时掌握,助力创业第一步!新品发布,限时特惠,部分地区注册仅68元!最高返佣21元! (2)知识产权正版图片--享受VIP特权,海量图片,免费下载,永久使用!包月VIP仅39元/月,包季包年更便宜!最高返佣12元!(3)智慧多端小程序--企业展示智能多端小程序、零售电商智能多端小程序、服务行业智能多端小程序、智慧餐厅智能多端小程序,四大种类小程序,全面满足企业各种需求,首月仅需9.9元!最高返佣3元! 云翼计划-助力学生辉煌明天 学生专享优惠产品--云计算普惠校园计划,助力学生的辉煌明天!轻量应用服务器、云服务器ECS,100%CPU性能,简单易操作、代码可调式,完美符合学生要求,每月价格低至9.5元!最高返佣3元! 人气热销产品 ECS突发性能T6,高性价比之选,适合入门级用户,低负载应用1...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS7设置SWAP分区,小内存服务器的救世主
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS关闭SELinux安全模块