发展&来源

Docker最初由dotCloud公司创始人Solomon Hykes在法国期间发起的一个公司内部项目,基于dotCloud公司多年云服务技术的一次革新,并于2013年3月以Apache 2.0授权协议开源,主要项目代码在Github上维护。Docker项目后来加入了Linux基金会,并推动开发容器联盟(OCI)

Docker介绍-基本概念 - 图1

Docker是基于Google公司的Go语音开发实现的,基于Linux内核的cgroup和namespace,以及AUFS类的Union FS等技术,对进程封装隔离,属于操作系统层面的虚拟化技术。由于隔离的进程独立于宿主机和其他隔离的进程,因此也成为容器。


Docker在容器基础上,进行了进一步的封装,从文件系统,网络互联到进程隔离等,极大简化了容器的创建和维护。使得Docker技术比虚拟机技术更为轻量便捷。

优势

相比于传统的虚拟机,Docker的优点有如下方面:

  • 更高效的利用系统资源
  • 更快速的启动时间
  • 在不同的物理机上可以运行完全一致的环境(各种软件和环境)
  • 扩展性更强

Docker介绍-基本概念 - 图2

Docker介绍-基本概念 - 图3

  1. ![](https://cdn.nlark.com/yuque/0/2020/png/428937/1602388209317-ba8f9ea6-0bc4-4bd7-810a-acd51b439be9.png)

传统虚拟机所处的系统层级

Docker介绍-基本概念 - 图4

Docker介绍-基本概念 - 图5

Docker介绍-基本概念 - 图6

  1. **虚拟化 + 容器的组合 **

使用场景

Docker介绍-基本概念 - 图7

Docker系统架构

Docker介绍-基本概念 - 图8

Docker整体结构分为Clients, Hosts和Registries三大部分。Clients通过命令行或者其他工具使用API和Docker Daemon守护进程进行通讯,Docker主机Host是一个物理或者虚拟机,用于执行Docker守护进程;而Registries部分是Docker的仓库,类似代码仓库存储Docker的Image镜像。