《1》镜像与容器
。镜像是指文件系统快照或tar包;
。容器是指镜像的运行态;
《2》容器与虚拟机
。虚拟机持有整个操作系统和应用程序的快照;
。虚拟机运行着自己的内核;
。虚拟机可以运行linux之外的其他操作系统;
。容器只持有应用程序,不过应用程序的概念可以延伸到整个linux发行版;
。容器共享宿主机的内核;
。容器只能运行linux,不过在同一宿主机上运行的每个容器都可包含不同的发行版;
《3》持续集成与持续交付
。在应用程序新代码提交或触发其他条件时,系统自动构建新镜像并进行部署;
《4》宿主机管理
。设置或配备一台物理服务器或虚拟机以便用于运行docker容器的过程;
《5》编排
。编排也称编配,这个术语在docker生态系统中有多种含义,通常情况下,它包括调度和集群管理,不过有时也包括了宿主机管理。在本系列文章中,我将编排作为一个松散的总称,包括容器调度的过程、集群的管理、容器的链接(发现),以及网络流量路由。或者换换句话说,编排是个控制器进程,用于决定在哪里运行容器,以及如何让集群知道可用的服务;
《6》调度
。用于决定哪些容器可以以给定的资源约束,如cpu、内存和IO,运行在哪些宿主机上;
《7》发现
。容器如何公开服务给集群,以及发现如何查找其他服务并与之通信的过程,举个简单的用例:一个网站应用容器发现如何链接数据库服务。docker文档中的发现是指将容器链接在一起,不过在生产级系统中,通常使用的是更复杂的发现机制;
《8》配置管理
。配置管理过去常常指的是docker出现之前的自动化工具,如Chef和Puppet,大多数的DevOps团队正在转移到docker上,以消除这类配置管理系统的复杂度。