因为工作的需要,需要部署一些轻量级的web应用,
Docker的思想来源于集装箱,集装箱解决了什么问题?试想,在一艘大船上,可以把货物规整的摆放起来。并且各种各样的货物被集装箱标准化了,集装箱和集装箱之间不会相互影响,而且有各种专门的集装箱,有冷藏的,也有其他特殊要求的集装箱,这些集装箱的镜像都可以在网上提供下载,也可以根据自己的需求定制集装箱。那么我就不需要专门运送水果的船和专门运送化学物品的船了。只要这些货物在集装箱里装的好好的,那我就可以用一艘大船把它们都运走。docker就是类似的理念。现在都流行云计算了,云计算就好比大货轮,而docker就是集装箱。
Docker的主要目标是"Build,Ship and Run Any App,Anywhere",也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的APP(可以是一个WEB应用或者数据库应用等等)及其运行环境能够做到"一次封装,到处运行"。而且很麻烦,还会造成一些冲突。比如IIS和Apache访问端口冲突。这个时候你就要隔离.net开发的网站和php开发的网站。常规来讲,我们可以在服务器上创建不同的虚拟机在不同的虚拟机上放置不同的应用,但是虚拟机开销比较高。docker可以实现虚拟机隔离应用环境的功能,并且开销比虚拟机小。
docker提供了一系列的标准化API接口,可对我们的应用进行查看,删除,启动,停止等,不需要关心具体的服务器(tomcat等)的启动停止等命令。更轻松的迁移和扩展(在任意平台移植,可以分分钟扩展多台服务器应对某个时段的高访问量)。
更简单的管理。每一个容器的管理者可以专注于自己熟悉的功能和业务。容器镜像的构建者可以任意修改容器的文件系统后进行发布,这种修改对于镜像使用者来说是不透明的,镜像构建者一般也不会将对容器文件系统的每一步修改,记录进文档中,供镜像使用者参考。