Docker是一种容器,相对于vmware这种重量级的虚拟化技术来说,docker一种轻量级的虚拟化技术。是一个能把开发的应用程序自动部署到容器,并相互隔离的一种开源的引擎。和vmware硬件级别的虚拟化不同的是,docker的基于系统级别的虚拟化出来的环境是基于宿主机的,而虚拟机可以虚拟出一套和宿主机完全不同的系统来
Docker容器和虚拟机对比
虚拟机需要依赖hypervisor(系统管理程序,常见的又vmware, virtulaBox),以及guestOS(centos,ubuntu)才能创建虚拟的操作环境,而docker只需要宿主机上有dokcer engine就可以创建虚拟的操作环境。docker启动容器可以做到秒级别,而且资源占用少,一般的一台服务器能够支持的容器数据要远多于虚拟机的数据,因为docker容器简洁,直接使用的是宿主机的系统,相比于docker容器虚拟机过于臃肿,每一个虚拟机就需要是一套完全独立系统资源,所以性能上docker容器因为不用维护系统级别的进程,性能要优于虚拟机
Docker核心组件
docker采用的是c/s架构,具有客户端和服务端,他主要包含三大组件
image(镜像)
- 镜像是构建docker世界的基石,也是docker生命周期的“构建”部分。
- 镜像可以当做是容器的源代码,可以简单的理解为安装系统是的镜像文件
- 镜像的体积小,非常“便携”,易于分享、存储和更新
Registry(仓库)
- docker使用registry里保存用户和官方的镜像,registry分公有和私有,类似于maven仓库公有和私有的概念
- 可以简单的理解为一个仓库,registry就是镜像的仓库
- Docker官方运营的registry叫做docker hub
Container(容器)
- container是基于镜像启动的,容器中可以运行一个或者是多个进程
- 仓库里面存放着镜像,基于镜像可以启动容器