docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口,容器之间完全隔离。简言之,就是可以在Linux上镜像使用的这么一个容器。
docker与vm虚拟机
相信很多人都使用或了解过虚拟机,就是在系统安装一个软件,通过软件安装系统模拟更多的子系统出来,里面都可以装软件,登qq,每个子系统之间都是相互隔离的.
虚拟机虽然可以隔离出来很多子系统,但是每个子系统所占用的资源是很大的,每次启动消耗时间长,并且有的虚拟机软件可能是收费的。
相对于虚拟的笨重,docker则显得更轻量化,不会占用系统很多资源,启动消耗时间小,且维护成本低。
docker是使用当下很火的Go语言进行开发的,其技术核心是Linux内核的Cgroup,Namespace和AUFS类的Union FS等技术。Docker通过这些底层的Linux技术,对Linux进程进行封装隔离,而被隔离的进程也被称为容器,完全独立于宿主机的进程。