docker入门之容器介绍
作者:paoge2815
docker概述
docker是一个开源的软件部署解决方案;
docker也是轻量级的应用容器框架;
docker可以打包、发布、运行任何的应用,这个也是docker的产品理念:Docker - Build, Ship, and Run Any App, Anywhere
docker采用的是LXC(Namespace+CGroups),即在Linux内核的Namespace[资源隔离]和CGroups[资源控制]技术的基础上通过镜像管理机制来实现轻量化设计。
docker组成
docker的组成包括docker server和dockerclient,其中docker包括的组件:容器(container)、镜像(image)和仓库(repositories),如下图:
docker vs VM
docker作为容器的一种,跟传统的VM存在很大的差异,首先从架构上比较2者所在的位置:
通过比较,我们可以看出,VM其实是在硬件的基础上虚拟化(hypervisor)出来的操作系统,多个VM之间共享底层硬件资源。而docker是在Linux基础上采用Namespace和CGroups技术进行的隔离,这就造就了docker既可以运行在硬件操作系统之上,也可以运行在VM之上。2者的区别也决定了,2者的差异,这里总结了两者的差异,汇总如下:
docker既然存在这样的特性,那么docker可以做什么呢?下图给出了docker的8种场景,而作者从实际的工作出发,主要采用docker将现有产品的发布流程精简化,减少了大量的环境配置工作,由于docker的隔离性,可以将应用程序打包成docker镜像,同一个产品不同版本可以打包成不同的镜像,这也方便了测试的工作。
因此,从不同的岗位看待docker,docker带来的改变是全方面的