什么是Docker

由dotCloud公司发起的项目,使用Google公司推出的Go语言进行开发实现,基于 Linux 内核的 cgroup,namespace,以及 OverlayFS 类的 Union FS 等技术,对进程进行封装隔离,属于 操作系统层面的虚拟化技术。由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。

Docker 在容器的基础上,进行了进一步的封装,从文件系统、网络互联到进程隔离等等,极大的简化了容器的创建和维护。使得 Docker 技术比虚拟机技术更为轻便、快捷。

传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程;而容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便。

为什么要用Docker

  • 更高效的利用系统资源:无需进行硬件和完整操作系统的虚拟
  • 更快速的启动时间:直接运行于宿主内核,因此启动时间较快
  • 一致的运行环境:Docker的镜像提供了除内核外完整的运行时环境,确保了应用运行环境一致性
  • :一次创建,到处运行。通过Dockerfile进行镜像构建,结合CI系统进行集成测试,结合CD系统进行自动部署。
  • 应用迁移更加容易
  • 维护扩展更加轻松