绝大部分应用,开发者都可以通过docker build创建镜像,通过docker push上传镜像,用户通过docker pull下载镜像,用docker run运行应用。
用户不需要再去关心如何搭建环境,如何安装,如何解决不同发行版的库冲突,而且通常不会需要消耗更多的硬件资源,不会明显降低性能。
- 解决运行环境不一致所导致的问题。这样就不会产生“本地运行没问题,可一到服务器上就不行了”的情况。
- 限定最大的cpu使用内存硬盘,这样就起到了隔离的作用,避免产生“一块代码产生死循环,把磁盘占满了,其它程序也挂了”的情况。
- docker的标准化让快速扩展,弹性伸缩变得简单。
容器不是模拟一个完整的操作系统而是对进程进行隔离,有了容器,我们就可以将软件运行所需的所有资源打包到一个隔离的容器中,容器与虚拟机不同,不需要捆绑一整套操作系统,只需要软件工作所需的库资源和设置。系统因此而变得高效轻量并保证部署在任何环境中的软件都能始终如一地运行。
举例: 沙特老国王萨勒曼把一辆比亚迪电动跑车(好比开发好的应用APP),打包放到一容器集装箱里送给卡塔尔小王子,它通过货轮可以轻而易举的从上海码头(CentOS7.2环境)运送到多哈港(Ubuntu14.04环境)。而且运输期间,他的比亚迪跑车(APP)没有受到任何的损坏(文件没有丢失),在另外一个码头卸货后,依然可以在沙漠中奔驰(启动正常)。