刚开始学习docker,理解一些粗浅的概念。
学习docker之前,要知道什么是container(容器)。
container(容器)这个概念确实好。刚开始理解container(容器),可以认为container(容器)就是一个虚拟机。但是虚拟机启动后,你预分配的物理资源(譬如你在windows上用vmware启动一个linux虚拟机时候配置的硬盘和内存以及cpu资源)它立即就用完,不管实际负载需不需要这么多,这就限制了其弹性(可伸缩性),即所有的虚拟机启动后一旦把物理资源占用完毕,就不可能再创建更多,销毁也颇为不易。
但是container被创建后,os只给它分配了很少的资源,一旦需要更多的资源,若os有就可以再想os申请。而容器本身的创建和销毁几乎没有什么成本,所以你可以在一个os上创建数目几倍于虚拟机的container。
打个不恰当的比方,以可执行文件为elf格式的linux进程为例,container就类似于进程的.bss空间。进程启动之时,.bss数据空间的逻辑内存可能占用了100M,但是进程启动的时候这个空间的物理内存量几乎为0,当运行到相关函数或者使用到相关源码文件的数据时候,os再启动映射动作,为相关的虚拟内存进行物理内存空间的分配。
以上为个人愚见。后面边学习边补充。