很早之前就听过Docker,当时感觉对个人使用而言Docker似乎派不是太大的用场。
- Docker非常类似虚拟机。如果单纯出于统一开发环境的考虑,直接用虚拟机似乎还更直接一些。
- 虚拟机+ Vagrant也可以方便的对虚拟环境进行管理,Docker在这方面似乎也木太占优势。
- Docker通过仓库分发Images,似乎同直接复制虚拟机的镜像效果也差不了太多。
- 由于并不需要管理大量的服务器,直接手动部署或用部署工具操作也不会太过复杂。用Docker还得学习Docker的使用,似乎也不太值得。
近期由于Discourse的缘故,实际用了一下Docker。感觉Docker确实是个不错的东西,不论是开发还是运维Docker都是值得使用的。
Docker有啥好处
- Puppet, Chef等传统的运维工具可以实现应用的批量以及自动化的部署。但实际工作中,用户的系统千差万别,可能换个系统环境你的脚本就挂了。
- 对开发人员,可以使用统一的虚拟机作为开发环境。但虚拟机无法直接部署到生产环境。生产环境、测试环境、生产环境无法做到统一。很可能开发环境跑的好好的,一到生产环境就出各类莫名其妙的问题。
- Docker 容器的启动可以在秒级实现,这相比传统的虚拟机方式要快得多。 其次,Docker 对系统资源的利用率很高,一台主机上可以同时运行数千个 Docker 容器。
- 使用Docker可做到“各类环境”的完全统一。不论用户原始的环境是什么,真正跑应用的环境都是一样的。由于在开发阶段就已经把环境完全整好了,只需要简单的几个命令即可完成部署,Docker的部署异常简单。由于不用考虑系统的差异,Dockerfile写起来相对来是比较简单的。
相关资源
- Docker — 从入门到实践 写的挺通俗易懂的,比官网的文档看的舒服。