【关键词】Docker 镜像 虚拟化 容器
1 Docker简介
Docker 是一个能够把开发的应用程序自
动部署到容器的开源引擎。由Docker 公司的
团队编写,基于Apache2.0 开源授权协议发行。
Docker 在虚拟化的容器执行环境中增加
了一个应用程序部署引擎。该引擎的目标就是
提供一个轻量、快速的环境,能够运行开发者
的程序,并方便高效地将程序从开发者的笔记
本部署到测试环境,然后再部署到生产环境。
2 Docker架构
Docker 架构如图1 所示。Docker 是一个
客户- 服务器(C/S)架构的程序。Docker 客
服端只需向Docker 服务器或守护进程发送请
求,服务器或守护进程将完成所有工作并返回
结果。Docker 提供了一个命令行工具Docker
以及一整套RESTful API。你可以在同一台宿
主机上运行Docker 守护进程和客户端,也可
以从本地的Docker 客户端连接到运行在另一
台宿主机上的远程Docker 守护进程。
3 Docker镜像
Docker 镜像是由文件系统叠加而成。最
底层是一个引导文件系统,即bootfs,这很像
典型的Linux/Unix 的引导文件系统。Docker
用户几乎永远不会和引导文件系统有什么交
互。实际上,当一个容器启动后,它将会被
移到内存中,而引导文件系统则会被卸载
(unmount),以留出更多的内存供initrd 磁
文/卫彪 刘成龙 郭旭
Docker 是基于Go 语言实现的
云开源项目,诞生于2013 年初,
最初发起者是dotCloud 公司。
Docker 自开源后受到广泛关注和
讨论,目前已有多个相关项目,
逐渐形成了围绕Docker 的生态系
统。dotCloud 公司后来也改名为
Docker Inc,专注于Docker 相关
技术和产品的开发。
摘 要
盘镜像使用。
到目前为止,Docker 看起来还很像一个
典型的Linux 虚拟化栈。实际上,Docker 镜像
的第二层是root 文件系统rootfs,它位于引导
文件系统之上。Rootfs 可以是一个或多种操作
系统(如Debian 或者Ubuntu 文件系统)。
Docker 文件系统层如图2 所示。
4 相比与传统虚拟化的优势
作为一个轻量级的虚拟化方式,Docker
在运行应用上跟传统的虚拟机方式相比具有显
著优势:
(1)Docker 容器很快,启动和停止可以
在秒级实现,这相比传统的虚拟机方式要快得
多。
(2)Docker 容器对系统资源需求很少,
一台主机上可以同时运行数千个Docker容器。
(3)Docker 通过类似Git 的操作来方便
用户获取、分发和更新应用镜像,指令简明,
学习成本较低。
(4)Docker 通过Dockerfile 配置文件来
支持灵活的自动化创建和部署机制,提高工作
效率。
Docker 容器除了运行其中的应用之外,
基本上不消耗额外的系统资源,保证应用性能
的同时,尽量减少系统开销。传统虚拟机方式
运行N 个不同的应用就要启动N 个虚拟机(每
个虚拟机需要单独分配独占的内存、磁盘等资
源),而Docker 只需要启动N 个隔离的容器,
并将应用放到容器内即可。
当然,在隔离性方面, 传统的虚拟机
方式多了一层额外的隔离。但这并不意味着
Docker 就不安全。Docker 利用Linux 系统上
的多种防护机制实现了严格可靠的隔离。从1.3
版本开始,Docker 引入了安全选项和镜像签
名机制,极大地提高了使用Docker 的安全性。
5 结论
Docker虚拟化方式之所以拥有众多优势,
这跟操作系统的虚拟化自身的特点是分不开
的。传统方式是在硬件层面实现虚拟化,需要
有额外的虚拟机管理应用和虚拟机操作系统
层。Docker 容器是在操作系统层面上实现虚
拟化,直接复用本地主机的操作系统,因此更
加轻量级。
参考文献
[1]James Turnbull 著.The Docker Book[M].
人民邮电出版社,2015.
[2] 杨保华, 戴王剑, 曹亚仑著.Docker 技术
入门与实践[M]. 机械工业出版社,2015.
作者单位
安徽四创电子股份有限公司 安徽省合肥市
230088
图1:Docker 架构
图2:Docker 文件系统层
Electronic Technology & Software Engineering 电子技术与软件工程• 251