docker - (必读) 跟传统的 VM比较,以及文件系统, 镜像相关
访问量: 1096
docker 是一个镜像文件吗?
跟传统的VM不一样.
必读参考文章:https://stackoverflow.com/questions/16047306/how-is-docker-different-from-a-virtual-machine
docker 与 vm相比: 启动速度快, 加载快, 镜像文件更容易被处理, (基本一秒内跑起来. VM则是几十秒到几分钟)
而且具备镜像的版本管理功能. ( docker commit ) 在跑单元测试的时候特别特别方便. 据说可以并行进程的跑. 不过我还没试过.
多个docker 还可以更好的共享使用系统的资源. ( vm 则机器严格的初始化就划分系统资源,docker则可以灵活的随时使用随时释放)
部署特别容易. 完全不需要挨个安装各种依赖,各种环境. linux, mac, windows 拿到docker镜像就可以立刻使用.
底层机制不同: 具体看这里: https://stackoverflow.com/a/34757096/445908
docker : 借助于 同一个kernel下, 多个container共存, 每个container 拥有一个namespace, 这样 每个进程之间互相看不到. 所以启动特别快, 也很轻量级.
vm: 每个VM就是一个操作系统. N个VM就是N个操作系统, 一启动就要占用各种系统资源(内存,虚拟CPU等)
文件系统不同:
vm : 就是我们熟知的文件系统.
docker : layered file system, 记录从原始镜像开始的各种 diff , 你看到的image实际上是根据原始镜像不断增量变化的内容.