初衷
最近面试的时候都有被问到有没有使用过docker,由于平时vagrant使用起来也很便捷,而且也觉得docker是跟vagrant区别不大的东西,就一直没有研究docker。
然而,一个东西能越来越火总是有道理的,虽然我不知道,但不影响我去研究它啊。
这个专栏有几个目的,一是研究的过程顺便做个笔记巩固知识,二是记录一些学习过程中遇到的一些坑,三是希望广大phper能在研究docker时能有比较全面和详细的踩坑记录,节省时间。
最后,由于本人也是刚开始研究docker,所以文章肯定有错误或遗漏的地方,如果博文中出现了错误,请大家帮忙斧正,深感荣幸。
介绍
在研究docker之后,发现docker和vagrant的思想完全不一样,其中最主要的差别就是vagrant是传统虚拟机技术,管理的是虚拟机,其原理是虚拟出一套硬件后,在其上运行一个完整的操作系统,在该系统上再运行所需应用进程,而docker管理的是容器,而容器内的应用进程直接运行于宿主机的内核,容器内没有自己的内核,而且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便。如下图:
虚拟机相当于一个完整的系统,它的运行需要为其分配足够一个系统运行的磁盘空间和内存大小,三个虚拟机就需要分配三份,而每个虚拟机其实很多东西都是重复的,这样极大的浪费了机器的资源。