版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42528266/article/details/102868260
Docker是一个用来装应用的容器,就好比杯子用来装水,笔筒用来装笔,书包用来装书一样,你可以把hello world放到Docker里,你可以把网站放到Docker里,你可以把你想的到的任何程序放到Docker里。
Docker 的思想来源于集装箱,集装箱最大的作用在于能够将货品标准化,在运输的过程中,不需要直接装载和卸载各种各样的商品,而是统一标准的集装箱,这样装载和卸载的环节就可以实现流水线和自动化了,并且商品封装在集装箱中,没有暴露在外面,提高安全性,集装箱与集装箱之间也是互相隔离,不会有任何相互影响的问题。我们也不再需要专门的船去运输专门的货品,只要货品在集装箱内好好封存着,那就可以使用一艘大船将他们都运走。并且你可以很方便的将集装箱装载到飞机、轮船、货车、火车,大大的提高了运输的便利性。 对于我们来说,Docker 也担任了集装箱类似的角色,我们的应用或者所依赖的第三方服务可以理解为货品,而 Docker 则是将我们的货品规范化管理起来,从而可以轻易的完成产品交付,环境转移等等诸多问题。还有我们的货品由Docker这个集中箱封装,对外隔离,提高安全性。并且 Docker 对于主机资源的消耗非常小,可以实现对服务器资源的最大利用。
Docker 的核心是 基于 LXC(Liunx container) 技术的实现,可以理解为一个轻量级的虚拟机(实际上是容器的概念,Docker 不是虚拟机),Docker 使用 Linux 的 namespace 和 cgroups 技术实现容器隔离与资源限制。
类别 | Docker | VM |
---|---|---|
操作系统 | 与宿主机共享OS | 在宿主机 OS 运行虚拟机 OS |
部署难度 | 非常简单 | 组件多, 部署复杂 |
启动速度 | 秒级 | 分钟级 |
执行性能 | 和物理系统几乎一致 | VM 会占用一些资源 |
镜像体积 | 镜像是 MB 级别 | 虚拟机镜像是 GB 级别 |
管理效率 | 管理简单 | 组件相互依赖, 管理复杂 |
隔离性 | 比较弱 | 彻底 |