历史
- Docker公司:Docker 公司位于旧金山,由法裔美籍开发者和企业家 Solumon Hykes 创立
- dotCloud :【Platform-as-a-Service, PaaS】平台即服务提供商,是Docker 公司的前生。dotCloud 平台利用了 Linux 容器技术。为了方便创建和管理这些容器,dotCloud 开发了一套内部工具,之后被命名为“Docker”。再后来dotCloud更名为现在的Docker公司
- OCI :【The Open Container Initiative】开放容器计划,是一个旨在对容器基础架构中的基础组件(如镜像格式与容器运行时)进行标准化的管理委员会
- Moby projetc:Docker开源项目,Moby 项目的目标是基于开源的方式,发展成为 Docker 上游,并将 Docker 拆分为更多的模块化组件
容器
因为Docker是一个开源的应用容器引擎,所以了解下容器是什么,容器可以看做是一个轻量化级别的虚拟机,所以通过与虚拟机对比,了解容器技术内容。
容器和虚拟机的区别
虚拟机:通过软件模拟具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。 每一台虚拟机包括应用,必要的二进制和库,以及一个完整的用户操作系统。虚拟机一旦被开启,预分配给它的资源将全部被占用。在实体计算机中能够完成的工作在虚拟机中都能够实现。在计算机中创建虚拟机时,需要将实体机的部分硬盘和内存容量作为虚拟机的硬盘和内存容量。每个虚拟机都有独立的CMOS、硬盘和操作系统,可以像使用实体机一样对虚拟机进行操作。
容器:容器是轻量级的操作系统级虚拟化,容器与宿主机共享硬件资源及操作系统,可以实现资源的动态分配。容器包含应用和其所有的依赖包,但是与其他容器共享内核。容器在宿主机操作系统中,在用户空间以分离的进程运行。容器技术是实现操作系统虚拟化的一种途径,可以让资源受到隔离的进程中运行应用程序及其依赖关系。通过使用容器,我们可以轻松打包应用程序的代码、配置和依赖关系,将其变成容易使用的构建块,从而实现环境一致性、运营效率、开发人员生产力和版本控制等诸多目标。容器可以帮助保证应用程序快速、可靠、一致地部署,其间不受部署环境的影响。容器还赋予我们对资源更多的精细化控制能力,让我们的基础设施效率更高。通过下面这幅图我们可以很直观