Docker 基础概念

138 阅读1分钟

以往的部署方式

image.png

  • 部署非常慢
  • 成本非常高
  • 资源浪费
  • 难于迁移和扩展
  • 可能会被限定的硬件厂商限制

虚拟化技术出现以后

image.png

  • 每个app独立运行在一个VM里
  • 资源池:一个物理机的资源分配到了不同的虚拟机里
  • 很容易扩展:加物理机/虚拟机
  • 很容易云化:亚马逊AWS,阿里云等

虚拟化的局限性

每一个虚拟机都是一个完整的操作系统,要给其分配资源,当虚拟机数量增多时,操作系统本上消耗的资源势必增多

什么是容器?

image.png

  • 对软件和其依赖的标准化打包
  • 应用之间相互隔离
  • 共享同一个OS Kernel
  • 可以运行在很多主流操作系统上

容器解决了什么问题?

  • 解决了开发和运维之间的矛盾
  • 在开发和运维之间搭建了一个桥梁,是实现devops的最佳解决方案

容器和虚拟机的区别

image.png

虚拟化+容器

image.png

Dokcer - 容器技术的一种实现 image.png

Docker Architecture

image.png

什么是Image

  • 文件和meta data的集合(root filesystem)
  • 分层的,并且没一层都可以添加改变删除文件,成为一个新image
  • 不同的image可以共享相同的layer
  • image本身的read-only的

image.png

什么是container

  • 通过Image创建
  • 在Image layer之上建立一个container layer(可读写)
  • 类比面向对象:类和实例
  • Image负责app的存储和分发,Container负责运行app

image.png