85
·桂广网技专栏·
《有线电视技术》 2019 年第 9 期 总第 357 期
聚焦
运营商
1 Docker 技术介绍
1.1 概述
Docker 的 最 初 版 本 于 2013 年 由
Docker Inc. 公司发布,是基于操作系
统层面的虚拟化容器,利用 Linux 内
核的资源分离机制以及 Linux 内核的
命名空间来建立独立运行的容器。容
器间互相隔离,除了内核之外,每个
容器可以有自己的库文件、配置文件、
工具和应用,并且提供了良好设计的
容器间通信机制,Docker 的优势使它
在短短几年内成为最流行的容器解决
方案,推动了基于云计算平台开发模
式的变革和应用部署方式的变革。
1.2 与传统虚拟机的区别
要了解 Docker 与传统的虚拟机
的区别,需要了解资源隔离和调度的
机制在这两种技术中有何不同。在传
统的虚拟机架构中,虚拟机监视器
(Hypervisor)负责进行资源的隔离和
调度。实现资源隔离的方法为:
虚拟
机监视器自己运行在硬件层上(1 型虚
拟机),或者运行在宿主操作系统之
上(2 型虚拟机),然后通过对 CPU、
内存、
IO 存储设备等进行虚拟化来实
现资源的隔离和调度。传统的虚拟机
注重的是虚拟CPU、内存、IO等设
备,然后在其上运行客户机操作系统
(Guest OS)。
而在 Docker 容器技术中,资源隔
离和调度的角色由 Docker 引擎来承担,
Docker 引擎利用 Linux 内核的资源分
离机制以及 Linux 内核的命名空间来
对容器进行隔离,即利用命名空间实
现系统环境的隔离,利用 CGroups 实
现资源限制,利用镜像实现运行目录
环境的隔离。容器内使用的内核和宿
主机是同一个内核。传统虚拟机和
Docker 容器的区别如图 1 所示。
这两个技术的主要区别如下。
(1)传统的虚拟机虚拟的是底层
CPU、内存和 IO 存储等资源的环境隔
离,而 Docker 利用的是 Linux 内核命
名空间特性来实现资源和环境隔离。
(2)传统虚拟机是属于更高层级
的客户机操作系统间的隔离,比容器
隔离度更高,而 Docker 容器是对应用
程序的隔离,容器和宿主操作系统使
用同一内核。
(3)传统虚拟机因为需要安装客
户机操作系统,因此所需的资源消耗,
如 存储、CPU、内 存 等 较 多,Docker
容器更为轻量化,启动速度更快,运
行效率更高。
1.3 隔离性
隔离技术出现的并不晚,早在
2000 年,FreeBSD 团队就已经将虚拟
化技术导入 chroot,开发出了 jail 系统
命令,可以让应用程序在沙箱中运行
并相互隔离,在早期的 chroot 机制下,
运行主进程可以跳出目录限制,因而
2004 年即有开发人员破解此种隔离机
制。同时,容器内的应用使用宿主系
统的库文件、配置文件等,一旦这些
库文件和配置文件遭到破坏,所有容
器均不可避免地遭受破坏,使用不当
桂广网技专栏
浅谈 Docker 容器技术
赵冠臣 王冬妮 刘至洋 广西广播电视信息网络股份有限公司
孟振江 广西广播电视信息网络股份有限公司河池分公司
摘要:本文介绍了 Docker 容器技术与传统虚拟化技术的区别,Docker 容器的几个关键技术优势,同时简单地
介绍了 Docker 容器的应用场景。
关键词:Docker 虚拟化 容器 DevOps
DOI:10.16045/j.cnki.catvtec.2019.09.021
评论0
最新资源