Docker - 技术栈
与传统的方式类似,构建及运行Docker容器与在一台虚拟机上构建和运行程序的方式是相似的,只是使用了一套新的工具以及技术。
与虚拟机不同的是,Docker容器将宿主机与应用程序或者服务隔离,从而提高了灵活性;但是由于引入了额外的容器嵌入层,所以会增加一些系统开销。
典型的Docker技术栈包含解决一下关注点的组件:
构建系统
如何构建镜像,并将其推入到镜像仓库里面。
镜像仓库
即保存Docker镜像的地方。
宿主机管理
由于Docker镜像包含了应用程序以及其依赖(自成体系),宿主机的管理就变得简单起来。通常只需要添加新的服务器,配置访问权限和防火墙,并安装Docker守护进程即可。
配置管理
部署
镜像部署有两种方式:
1. 推送 - 部署或编排系统将镜像推送到指定宿主机
2. 拉取 - 在宿主机上从镜像仓库获取镜像文件。
编排
包括对容器方方面面的操作。例如如何组织容器集群、在那些服务器(宿主机)上运行那些容器、如何调度容器、如何公开/发现容器等等。