七叶笔记 » golang编程 » Golang 容器技术 面试题与答案(一)

Golang 容器技术 面试题与答案(一)

1、为什么需要 DevOps

在当今,软件开发公司在软件新版本发布方面,多尝试通过发布一系列 以小的特性改变集为目标 的新软件版本,代替发布一个 大特性改变集 的新软件版本的方式。

这种方式有许多优点,诸如, 快速的客户反馈,软件质量的保证 等。也会获得较高的客户满意度评价。完成这样的软件发布模式,开发公司需要做到:

  • 增加软件布署的频率
  • 降低新发布版本的失败率
  • 缩短修复缺陷的交付时间
  • 加快解决版本冲突的问题
  • DevOps 满足所有这些需求且帮助公司高质完成软件无缝交付的目标

2、Docker 是什么?

Docker 是一个容器化平台,它 包装你所有开发环境依赖成一个整体,像一个容器 。保证项目开发,如开发、测试、发布等各生产环境都可以无缝工作在不同的平台。

Docker 容器:将一个软件包装在一个完整的 文件系统 中,该文件系统包含运行所需的一切: 代码、运行时、系统工具、系统库 等。

可以安装在服务器上的任何东西,这保证软件总是运行在相同的运行环境,无需考虑基础环境配置的改变。

3、DevOps 有哪些优势?

技术优势

  • 持续的软件交付能力
  • 修复问题变得简单
  • 更快地解决问题

商业优势

  • 更快交付的特性
  • 更稳定的操作系统环境
  • 更多时间可用于创造价值(而不是修复/维护)

4、CI 服务有什么用途?

CI(Continuous Intergration)– 持续集成服务 ,主要用于整合团队开发中不同开发者提交到开发仓库中的项目代码变化,并即时整合编译,检查整合编译错误的服务。

它需要一天中多次整合编译代码的能力,若出现整合错误,可以优异地准备定位错误源。

5、如何使用 Docker 技术创建与环境无关的容器系统?

Docker 技术有三种主要的技术途径辅助完成此需求:

  • 存储卷(Volumes)
  • 环境变量(Environment variable)注入
  • 只读(Read-only)文件系统

6、Dockerfile 配置文件中的 COPY 和 ADD 指令有什么不同?

虽然 ADD 和 COPY 功能相似, 推荐 COPY

那是 因为 COPY 比 ADD 更直观易懂,COPY 只是将本地文件拷入容器这么简单 ,而

ADD 有一些其它特性功能(诸如,本地归档角标和支持远程网址访问等),这些特性在指令本身体现并不明显。

因此,有必要使用 ADD 指令的最好例子是,需要在本地自动解压归档文件到容器中的情况,如:

 ADD rootfs.tar.xz  

7、Docker 镜像 (image)是什么?

Docker image 是 Docker 容器的源。换言之, Docker images 用于创建 Docker 容器(containers)。

镜像(Image)通过 Docker build 命令创建,当 run 镜像时,它启动成一个容器(container)进程。

做好的镜像由于可能非常庞大,常注册存储在诸如 registry.hub.docker.com 这样的公共平台上。

镜像常被分层设计,每层可单独成为一个小镜像,由多层小镜像再构成大镜像 ,这样碎片化的设计为了使镜像在互联网上共享时,最小化传输数据需求。

8、Docker 容器(container)是什么?

Docker containers, 即 Docker 容器,是包含其所有运行依赖环境 ,但与其它容器共享操作系统内核的应用,它运行在独立的主机操作系统用户空间进程中。

Docker 容器并不紧密依赖特定的基础平台,可运行在任何配置的计算机,任何平台以及任何去平台上。

9、Docker 中心(hub)是什么概念?

Docker hub 是云基础的 Docker 注册服务平台。

它允许用户进行 访问 Docker 中心资源库, 创建 自己的 docker 镜像并测试, 推送并存储 创建好的 Docker 镜像, 连接 Docker 云平台将已创建好的指定 Docker 镜像 布置 到本地主机等任务。

它提供了一个查找发现 Docker 镜像,发布 Docker 镜像及控制变化升级的资源中心,成为用户组或团队协作开发中保证自动化开发流程的有效技术途径。

10、在任意给定时间点指出一个 Docker 容器可能存在的阶段?

在任意时间点,一个 Docker 容器可能存在以下运行阶段:

运行中(Running)、已暂停(Paused)、重启中(Restarting)、已退出(Exited)

更多编程干货,请关注我

相关文章