docker学习笔记(一)docker 基本概念

1. docker简介

  • Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目。它基于 Google公司推出的 Go 语言实现。 项目后来加入了 Linux 基金会,遵从了 Apache 2.0 协议,项目代码在 GitHub上进行维护。

  • Docker 自开源后受到广泛的关注和讨论,以至于 dotCloud 公司后来都改名为 Docker Inc。Redhat 已经在其 RHEL6.5 中集中支持 Docker;Google 也在其 PaaS 产品中广泛应用。

  • Docker 项目的目标是实现轻量级的操作系统虚拟化解决方案。 Docker 的基础是 Linux 容器(LXC)等技术。
    在 LXC 的基础上 Docker 进行了进一步的封装,让用户不需要去关心容器的管理,使得操作更为简便。用户操作 Docker 的容器就像操作一个快速轻量级的虚拟机一样简单。

  • 下面的图片比较了 Docker 和传统虚拟化方式的不同之处,可见容器是在操作系统层面上实现虚拟化,直接复用本地主机的操作系统,而传统方式则是在硬件层面实现

docker学习笔记(一)docker 基本概念_第1张图片

2.docker的优点

作为一种新兴的虚拟化方式,Docker 跟传统的虚拟化方式相比具有众多的优势。

  1. 首先,Docker 容器的启动可以在秒级实现,这相比传统的虚拟机方式要快得多。 其次,Docker 对系统资
    源的利用率很高,一台主机上可以同时运行数千个 Docker 容器。
  2. 容器除了运行其中应用外,基本不消耗额外的系统资源,使得应用的性能很高,同时系统的开销尽量小。传统虚拟机方式运行 10 个不同的应用就要起 10 个虚拟机,而Docker 只需要启动 10 个隔离的应用即可。

具体说来,Docker 在如下几个方面具有较大的优势。

  • 更快速的交付和部署

对开发和运维(devop)人员来说,最希望的就是一次创建或配置,可以在任意地方正常运行。开发者可以使用一个标准的镜像来构建一套开发容器,开发完成之后,运维人员可以直接使用这个容器来部署代码。 Docker 可以快速创建容器,快速迭代应用程序,并让整个过程全程可见,使团队中的其他成员更容易理解应用程序是如何创建和工作的。 Docker 容器很轻很快!容器的启动时间是秒级的,大量地节约开发、测试、部署的时间。

  • 更高效的虚拟化

Docker 容器的运行不需要额外的 hypervisor 支持,它是内核级的虚拟化,因此可以实现更高的性能和效率。

  • 更轻松的迁移和扩展

Docker 容器几乎可以在任意的平台上运行,包括物理机、虚拟机、公有云、私有云、个人电脑、服务器
等。 这种兼容性可以让用户把一个应用程序从一个平台直接迁移到另外一个。

  • 更简单的管理

使用 Docker,只需要小小的修改,就可以替代以往大量的更新工作。所有的修改都以增量的方式被分发和
更新,从而实现自动化并且高效的管理

3. docker的基本概念

  • Docker 包括三个基本概念:
    1. 镜像(Image)
    2. 容器(Container)
    3. 仓库(Repository)

镜像:

Docker的镜像就是一个只读的模板,例如:一个镜像包含一个完整的操作系统,我们基于这个镜像就可以运行一个容器,这个容器就相当于包含一个完整的操作系统的机器一样。

容器:

Docker利用容器来运行应用,容器是从镜像创建的运行实例,它可以被启动、开始、停止、删除。每个容器都是相互隔离的,为了保证安全

仓库:

仓库是集中存放镜像文件的场所。有时候会把仓库和仓库注册服务器(Registry)混为一谈,并不严格区分。实际上,仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)。仓库分为公开仓库(Public)和私有仓库(Private)两种形式

关于镜像、容器、仓库的关系


 仓库自然不用说,一听就是老大,一个注册服务器中包含着许多个仓库,每个仓库中存在着不同的镜像,每个镜像也有不同的标签,假如公司中按照
 项目区分仓库,每个项目一个仓库,每个项目都有自己的开发环境,测试环境和线上环境,就可以为这个相同的镜像打上不同的tag来区分不
 同的环境,而容器是运行时的概念,可以基于一个镜像创建一个容器并运行它,基于同一个镜像可以创建出不同的容器,不同容器之间相互
 隔离,不受影响,这种基于同一个镜像只需要创建容器就可以扩展实例的方式会很方便,而且环境的准备也会方便很多

你可能感兴趣的:(docker学习笔记,docker,容器)