# Docker基础入门

# 概念及定义

Docker:它是一个开源的软件项目,在Linux操作系统上,Docker提供了一个额外的软件抽象层及操作系统层虚拟化的自动管理机制。

# 虚拟化的发展历程

物理机时代:

  • 安装系统
  • 依赖环境
  • 应用程序
  • 加入物理机以增加并发量,还要重复上述步骤

虚拟机时代:

  • 把一个物理机虚拟为多个机器
  • 把依赖环境打成一个系统模板(省去安装依赖环境步骤)
  • 缺点:占用系统资源多,启动虚拟机所需时间多,分钟级启动等
  • 代表:KVM、Xen

容器化时代:

  • 镜像为基础
    • 依赖环境镜像
      • Java基础镜像
      • PHP基础镜像
    • 根据基础镜像 - 放入自己的代码或者包
      • 生成一个新镜像
      • 程序镜像
    • 镜像 - 按层存储
      • A应用 - Java -> JDK1.8 => a.jar
      • B应用- Java -> JDK1.8 => b.jar
      • A、B应用的基础镜像层是在存储上是共用的
    • 启动时间少,妙计启动
  • 容器:把自己的应用程序,根据某个依赖的基础镜像,生成一个应用程序镜像,可以运行在任何部署Docker环境的机器上
  • 代表:Docker