概念

Docker是一个容器引擎,是应用程序与系统之间的隔离层。

通常应用程序对安装的系统环境会有要求,如果服务器很多,部署时系统环境的配置工作是非常繁琐的。Docker让应用程序不必再关心主机环境,各个应用安装在Docker镜像里,Docker引擎负责运行包裹了应用程序的docker镜像。

Docker的理念是让开发人员可以简单地把应用程序装载到容器中,然后轻松地部署到任何地方。Docker非常适合频繁改动快速发布的互联网项目。

Docker的首次发布是在2013年3月,发布后就变得非常流行

docker特性

  • Docker容器是轻量级的虚拟技术,占用更少系统资源。
  • 使用Docker容器,不同团队(如开发、测试,运维)之间更容易合作。
  • 可以在任何地方部署Docker容器,例如:任何物理和虚拟机上,甚至在云上。
  • 由于Docker容器非常轻量级,因此可扩展性很强。

docker和虚拟机的区别

Docker是一种轻量级的虚拟化技术,比传统的虚拟机性能更好。

下图是虚拟机的体系结构:

docker引擎组件 docker引擎是什么_应用程序

  • server – 表示真实电脑。
  • Host OS – 真实电脑的操作系统,例如:Windows,Linux
  • Hypervisor – 虚拟机平台,模拟硬件,如VMWare,VirtualBox
  • Guest OS – 虚拟机平台上安装的操作系统,例如CentOS Linux
  • App – 虚拟机操作系统上的应用,例如nginx

下图是Docker的体系结构:

docker引擎组件 docker引擎是什么_Docker_02

  • server – 表示真实电脑。
  • Host OS – 真实电脑的操作系统,例如:Windows,Linux
  • Docker Engine – 新一代虚拟化技术,不需要包含单独的操作系统。
  • App – 所有的应用程序现在都作为Docker容器运行。
    这种体系结构的明显优势是,不需要为虚拟机操作系统提供硬件模拟。所有应用程序都作为Docker容器工作,性能更好。

虚拟技术缺点:

  1. 资源占用十分多
  2. 冗余步骤慢
  3. 启动很慢

容器技术不是模拟的一个完整的操作系统
两者不容:

  • 传统虚拟机,虚拟出一条硬件,运行一个完整的操作系统,然后再这个系统上安装和运行软件
  • 容器内的应用直接运行在宿主机上,容器是没有自己的内核的,也没有虚拟我们的硬件,所以轻便
  • 每个容器间是相互隔离的,每个容器都有一个属于自己的文件系统,互不影响