什么是Docker:
Docker是一个开源项目,诞生于2013年初,最初是dotCloud公司内部的一个业余项目。它基于 Google公司推出的Go语言实现。项目后来加入了 Linux 基金会,遵从了 Apache 2.0 协议,项目代码在 GitHub上进行维护。
Docker项目的目标是实现轻量级的操作系统虚拟化解决方案。Docker的基础是Linux容器(LXC)等技术。在 LXC 的基础上 Docker 进行了进一步的封装,让用户不需要去关心容器的管理,使得操作更为简便。用户操作 Docker 的容器就像操作一个快速轻量级的虚拟机一样简单。
下面的图片比较了Docker和传统虚拟化方式的不同之处,可见容器是在操作系统层面上实现虚拟化,直接复用本地主机的操作系统,而传统方式则是在硬件层面实现。
docker对比传统的虚拟机:
使用Docker的好处:
1:快速部署。docker可以按照一个标准定制一套镜像,例如resin,zookeeper等,镜像包含了运行所需服务的所有环境。比如需要新建一个resin服务时,可以直接使用订制的resin镜像开启一个容器,而无需再去部署基础环境。我们要做的只是简单修改配置文件或者部署代码而已。容器的启动时间是秒级的,可大量节约开发、测试、部署的时间。
2:测试、开发应用环境的一致性。如果同一种服务的容器是由同一个镜像开启的,那么应用的环境是一模一样的。避免开发测试由于环境的不同导致测试开发的结果有差别。
3:资源整合。比较传统的虚拟机可部署更多应用,且速度更快。
4:应用隔离。需要在一台机器上运行多个应用的时候,可利用docker隔离应用,减少应用之间的互相影响。例如端口冲突等。
Docker基本概念:
1:镜像(image):镜像就是一个只读的系统模板,镜像可以用来创建容器。
2:容器(Container):容器是从镜像创建的运行示例,可以被启动,开始,停止,删除。容器间是隔离的。可以把容器看做是个简易版的linux环境。
3:仓库(Repository):存放镜像的场所。包括共有仓库和私有仓库。