初识Docker与容器

  • 什么是Docker
  • 容器技术
  • 为什么要使用Docker
  • Docker在开发和运维中的优势
  • Docker与虚拟机的比较
  • Docker与虚拟化


什么是Docker

Docker是基于Go语言实现的开源容器项目。轻量级虚拟化,为应用的开发,运行和部署提供了“一站式”的实用解决方案。
在百度百科中,对Docker的描述为:Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。Docker百度百科

容器技术

IBM Developer Works网站关于容器的描述十分准确:“容器有效地将由单个操作系统管理的资源划分到孤立的组中,以更好地孤立的组之间平衡有冲突的资源使用需求。与虚拟化相比,这样既不需要指令级模拟,也不需要即时翻译。容器可以在核心CPU本地运行指令,而不需要任何专门的解释机制。此外,也避免了准虚拟化和系统调用替换中的复杂性。”
Docker容器可以理解为一种轻量级的沙盒。每个容器内运行着一个应用,不同的容器相互隔离,容器之间也可以通过网络互相通信。

为什么要使用Docker

Docker在开发和运维中的优势

一次创建或配置,之后可以在任意地方,任意时间让应用正常运行。

  1. 更快速的交付和部署 ,开发人员使用镜像来快速构建一套标准的开发环境;开发完成之后,测试和运维人员可以直接使用完全相同的环境来部署代码;
  2. 更高效的资源利用 ,Docker是内核级的虚拟化,可以实现更高的性能,同时对资源的额外需求很低;
  3. 更秦松的迁移和扩展 ,Docker容器几乎可以在任意的平台上运行;
  4. 更简单的更新管理 ,使用Dockerfile,只需要小小的配置修改,就可以代替以往大量的更新工作。

Docker与虚拟机的比较

特性

Docker容器

虚拟机

启动速度

秒级

分钟级

性能

接近原生

较弱

内存代价

很小

较多

硬盘使用

一般为MB

一般为GB

运行密度

单机支持上千个容器

一般几十个

隔离性

安全隔离

完全隔离

迁移性

优秀

一般

Docker与虚拟化

传统方式是在硬件层面实现虚拟化,需要额外的虚拟机管理应用和虚拟机操作系统层。Docker容器是在操作系统层面上实现虚拟化,直接复用本地主机的操作系统,因此更加轻量级。

Docker官网