Docker

什么是Docker

  • Docker是业界领先的容器实现。
  • Docker由google用go语言实现, 基于 Linux 内核 的cgroup,namespace,以及AUFS类的UnionFS等技术,对进程进行封装隔离,属于操作系统层面的虚拟化技术。 由于隔离的进程独立于宿主和其它的隔离的进
    程,因此也称其为容器。Docke最初实现是基于 LXC.
  • Docker 能够自动执行重复性任务,例如搭建和配置开发环境,从而解放了开发人员以便他们专注在真正重要的事情上:构建杰出的软件。
  • 用户可以方便地创建和使用容器,把自己的应用放入容器。容器还可以进行版本管理、复制、分享、修改,就像管理普通的代码一样。

理解Docker首先要理解什么是容器

  • 容器是将软件打包成轻量,独立的软件包,包括配置,运行时环境,依赖,系统库等,确保容器能在不同的系统(linux,windows),不同的环境下始终如一的运行,避免出现“这段代码在我这跑不起来的问题”。

容器和虚拟机的区别

  • 容器是对操作系统的虚拟化,容器并没有自己的操作系统,而是在操作系统的基础上共享资源。而虚拟机是对硬件进行了虚拟化,每一个虚拟机都带了一个完整的操作系统。容器更轻量,但是虚拟机隔离性更好。
  • 容器是一个应用层抽象,用于将代码和依赖资源打包在一起。 多个容器可以在同一台机器上运行,共享操作系统内核,但各自作为独立的进程在用户空间中运行
  • 虚拟机则是对硬件的抽象,用于将一台服务器变成多台服务器。 管理程序允许多个 VM 在一台机器上运行。每个VM都包含一整套操作系统、一个或多个应用、必要的二进制文件和库资源,因此 占用大量空间 。而且 VM 启动也十分缓慢 。
  • 虚拟机和容器有不同的使用场景。虚拟机更擅长于彻底隔离整个运行环境。例如,云服务提供商通常采用虚拟机技术隔离不同的用户。而 Docker通常用于隔离不同的应用 ,例如前端,后端以及数据库。
  • 虚拟机和容器可以共存,因为虚拟机自带了一个操作系统,所以可以基于虚拟机的操作系统构建多个容器,也可以直接基于物理机的操作系统构建容器。

Docker镜像和容器的区别

就像类和实例的区别一样,Docker镜像是静态文件的打包,和容器是Docker运行起来的实例。可以这么理解,Docker镜像始终只有一份,但是每次镜像的启动都会产生不同的容器

更详细的资料详见Docker简介

你可能感兴趣的:(Docker)