Docker简介

什么是Docker

Docker使用Go语言开发,基于Linux内核的cgroup,namespace,以及AUFS类的Union FS等技术,对进程进行封装隔离,属于操作系统层面的虚拟化技术。
传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整的操作系统,在操作系统上运行相应的进程;而容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核。因此容器要比传统虚拟机更为轻便。


传统虚拟机

Docker

对比传统虚拟机

特性 容器 虚拟机
启动 秒级 分钟级
硬盘使用 一般为 MB 一般为 GB
性能 接近原生 弱于
系统支持量 单机支持上千个容器 一般几十个

基本概念

  • 镜像(Image)
  • 容器(Container)
  • 仓库(Repository)

Docker 镜像

操作系统分为内核和用户控件。Docker镜像就相当一个root文件系统。镜像不包含任何动态数据,其内容在构建之后也不会被改变。

分层存储

利用Union FS 技术,将镜像设计为分层存储的架构。镜像是一个虚拟的概念,实际提现并非由一个文件组成,而是由一组文件系统组成,即由多层文件系统联合组成。
镜像构建时,会一层一层进行构建,前一层是后一层的基础,任何一层的改变只会发生在自己这一层

Docker 容器

镜像和容器,就像面向对象程序设计中的“类”和“实体”,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、暂停、停止、删除等。
容器的实质是进程,容器进程运行于属于自己的独立的命名空间。容器可以拥有自己的root文件系统、网络配置、进程空间,甚至自己的用户ID空间。

Docker Registry

一个Docker Registry中可以包含多个仓库(Repository);每个仓库可以包含多个标签(Tag);每个标签对应一个镜像。

摘自

https://github.com/yeasy/docker_practice

你可能感兴趣的:(Docker简介)