前言
Docker是用Go语言编写的一个开源的应用容器引擎,本质上是一个操作系统级虚拟化方法,可以认为是轻量级的虚拟机。和虚拟机比起来:
- Docker更快速,启动一般在1秒内,虚拟机要慢好多;
- 节省资源,一台计算机跑个千百个Docker不是事,虚拟机几个就废了,而且还需要专用的cpu和内存资源来跑操作系统。
为什么会这样?因为Docker复用了主机的操作系统,使用了LXC(Linux Container)技术,linux的一种内核虚拟化技术,而VM的Hypervisor技术需要实现对硬件的虚拟化并搭载独立的操作系统,所以就会产生很大的差异。
Docker使用客户端/服务器 (C/S)架构模式,使用远程API来管理和创建Docker容器。Docker容器通过镜像来创建,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后就可以发布到任何Linux系统上。容器是完全使用沙箱机制,相互之间不会有任何接口。