在开发部署应用的过程当中总会出现测试环境明明好好的,部署获得正式环境就会出现各类各样的莫名其妙的问题,尤为是一些部署复杂的应用。有时会遇到须要部署多个相同的应用,又不得不投入大量人力、时间等资源消耗在这种重复性工做上。当面对部署数量高达千甚至万级别的应用的时候,问题更加突出,大量资源被这些运维成本吞噬。
因而工程师们在想能不能把应用程序所须要的环境(环境变量,hosts,数据存储位置等)所有包含到应用中。造成一种自包含的自给自足的小生态体系。部署只需运行这个总体而无需再配置(或者少许配置)各类环境变量。
复制虚拟机,运行多个虚拟机,的确能知足需求,可是虚拟机镜像少则几个G(例如ubuntu centos)多则几十个G(windows),过于消耗存储资源,并且虚拟机对资源损耗较大。因而容器技术应运而生。
容器是一种轻量级、可移植、自包含的软件打包技术,它使得应用能够在几乎任何地方以相同方式运行。(盗用别人的描述)
容器技术有不少实现方式,下面介绍容器技术的一种实现docker。linux
部分来自阿里云云原生技术公开课 https://edu.aliyun.com/roadmap/cloudnative#course
---- 后续有空再补git