您的位置 首页 golang

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

11、有什么方法确定一个 Docker 容器运行状态?

使用如下命令行命令,确定一个 Docker 容器 的运行状态

 $ docker ps -a  

这将列表形式输出运行在主机上的所有 Docker 容器及其运行状态。人家个列表中很容易找到想要的容器及其运行状态。

12、在 Docker file 配置文件中最常用的指令有哪些?

一些最常用的指令如下:

FROM:使用 FROM 为后续的指令建立基础镜像。在所有有效的 Dockerfile 中,FROM 是第一条指令。

LABEL:LABEL 指令用于组织项目镜像、模块、许可等。在自动化布署方面 LABEL 也有很大用途。在 LABEL 中指定一组键值对,可用于程序化配置或布署 Docker。

RUN:RUN 指令可在镜像当前层执行任何命令并创建一个新层,用于在镜像层中添加功能层,也许最来的层会依赖它。

CMD :使用 CMD 指令为执行的容器提供默认值。在 Dockerfile 文件中,若添加多个 CMD 指令,只有最后的 CMD 指令运行。

13、什么类型的应用(无状态性或有状态性)更适合 Docker 容器技术?

对于 Docker 容器创建无状态性(Stateless)的应用更可取。通过从应用项目中将与状态相关的信息及配置提取掉,我们可以在项目环境外建立不依赖项目环境的 Docker 容器。

这样,我们可以在任意产品中运行同一容器,只需根据产品需要像问 & 答(QA)一样给其配置环境即可。

这帮助我们在不同场景重用相同的 Docker 镜像。另外,使用无状态性(Stateless)容器应用相比有状态性(Stateful)容器应用更具有伸缩性,也容易创建。

14、解释基本 docker 应用流程

初始,所有都依赖于 Dockerfile 配置文件。dockerfile 配置文件就是创建 docker image(镜像)的源代码。

一旦 dockerfile 配置好了,就可以创建(build)并生成 image(镜像),image 就是 dockerfile 配置文件中【源代码】的【编译】版本。

一旦有了 image ,就可以在 registry (注册中心)发布它。registry 类似 git 资源库,你可以推送你的镜像(image),也可取回库中的镜像(image)。

之后,你就可以使用 image 去启动运行 containers(容器)。运动中的容器在许多方面,与虚拟机非常相似,但容器的运行不需要虚拟管理软件的运行。

15、Docker Image 和 docker layer(层)有什么不同?

Image: 一个 docker image 是由一个系列 docker 只读层(read-only layer)创建出来的。

Layer:在 dockerfile 配置文件中完成的一条配置指令,即表示一个 docker 层(layer)。

如下 dockerfile 文件包含 4 条指令,每条指令创建一个层(layer)。

 FROM ubuntu:15.04
 COPY  ./app
RUN make /app
CMD python /app/app.py  

重点,每层只对其前一层进行一(某)些进化。

16、虚拟化技术是什么?

最初的构想, virtualization (虚拟化)被认为是逻辑划分大型主机使得多个应用可以并行运行的一种技术方案。

然而,随着技术公司及 开源社区 的推进,现实发生了戏剧性的转变,以致产生了以一种或某种方式操作特权指令可以在单台基于 x86 硬件的系统上同时运行多个(种)操作系统的技术。

实质的效果是,虚拟化技术允许你在一个硬件平台下运行 2 个完全不同的操作系统。每个客户操作系统可完成像系统自检、启动、载入系统内核等像在独立硬件上的一切动作。

同时也具备坚实的安全基础,例如,客户操作系统不能获取完全访问主机或其它客户系统的权限,及其它涉及安全,可能把系统搞坏的操作。

基于对客户操作系统虚拟硬件、运行环境模拟方法的不同,对虚拟化技术进行分类,平方根的有如下 3 种虚拟化技术种类:

  • 全模拟( Emulation
  • 半虚拟(Paravirtualization)
  • 基于容器的虚拟化(Container-based Virtualization)

17、虚拟管理层(程序)是什么?

hypervisor ,即虚拟管理层(程序),它负责创建客户 虚拟机 系统运行所需虚拟配件环境。它监管客户虚拟操作系统的运行,并为客户系统提供必要的运行资源,保证客户 虚拟系统 的运行。

虚拟管理层(程序)驻留在物理主机系统和虚拟客户系统之间,为虚拟客户系统提供必要的虚拟服务。

如何理解它,它侦听运行在虚拟机中的客户操作系统的操作并在主机操作系统中模拟客户操作系统所需硬件资源请求。满足客户机的运行需求。

虚拟化技术的快速发展,主要在去平台,由于在虚拟管理程序的帮助下,可允许在单台物理服务器上生成多个虚拟服务器,驱动着虚拟化技术快速发展及广泛应用。

诸如:Xen、 VMware KVM 等,以及商业化的处理器硬件生产厂商也加入在硬件层面支持虚拟化技术的支持。诸如, Intel 的 VT 和 AMD-V

18、docker 群(swarm)是什么?

Docker swarm,即 docker 群,是原生的 dock遥集群服务工具。它将一群 docker 主机集成为单一一个虚拟 docker 主机。

利用一个 docker 守护进程,通过标准的 docker API 和任何完善的通讯工具, docker swarm 提供透明地将 docker 主机扩散到多台主机上的服务。

19、在使用 docker 技术的产品中如何监控其运行?

docker 在产品 中提供如 运行统计和 docker 事件的工具。可以通过这些工具命令获取 docker 运行状况的统计信息或报告。

Docker stats:通过指定的容器 id 获取其运行统计信息,可获得容器对 CPU ,内存使用情况等的统计信息,类似 Linux 系统中的 top 命令。

docker events:docker 事件是一个命令,用于观察显示运行中的 docker 一系列的行为活动。

一般的 docker 事件有:attach(关联), commit (提交),die(僵死),detach(取消关联),rename(改名),destory(销毁)等。也可使用多个选项对事件记录筛选找到想要的事件信息。

20、什么是孤儿卷及如何删除它?

孤儿卷是未与任何容器关联的卷。 在 docker v.1.9 之前的版本中,删除这些孤儿卷存在很大问题。

更多编程干货,请关注我

文章来源:智云一二三科技

文章标题:Golang 容器技术 面试题与答案(二)

文章地址:https://www.zhihuclub.com/99475.shtml

关于作者: 智云科技

热门文章

网站地图