如果说个人主机时代比拼的是CPU主频和内存,在云计算时代,虚拟化技术则是重中之重。
虚拟化可以通过硬件实现,也可以通过软件实现,而Docker实现了轻量级的虚拟化。
Docker开源项目
Docker是基于Go语言实现的云开源项目,是2013年dotCloud公司发起,后来该公司改名为Docker Inc。
Docker项目现加入Linux基金会,遵循Apache 2.0协议,全部开源代码在https://github.cim/docker/docker
维护。
主流的Linux操作系统均支持Docker,而自Redhat RHEL 6.5/CentOS 6.5以上系统、Ubuntu 14.04都默认带有Docker软件包。
Google的PaaS平台及服务产品都已应用Docker,而微软的Azure也对Docker提供支持。
Amazon的AWS EC2 Container也提供对Docker的支持。
Docker的目标是“Build,Ship and Run Any App,Anywhere”,通过对应用组件封装(Packaging)、分发(Distribution)、部署(Deployment)、运行(Runtime)等,实现“一次封装,到处运行”。
Linux容器技术
Docker引擎的基础是Linux容器技术(Linux Containers,LXC)
Linux容器技术最早可追溯到1982年的chroot工具,而其他的容器实现技术包括Solaris Containers、FreeBSD jail、Linux VServer、OpenVZ等。但上述技术都没有集成到主流的Linux内核,而LXC项目则被集成到主流的Linux内核,进而成为Linux系统轻量级容器技术的事实标准。
在LXC基础上,Docker优化容器使用体验,为容器提供管理工具,使用户操作Docker容器如同操作轻量级的虚拟机。
Docker在1.13版本之后,命名规则发生变化,docker也提供ce和ee两种版本。
容器与虚拟机