概述

介绍下列内容:

  • 什么是容器
  • 为什么使用容器
  • 容器技术概述
  • 容器与虚拟化

什么是容器

  • 概念:容器是一种轻量级、可移植、自包含的软件打包技术,使应用程序可以在几乎任何地方以相同的方式运行。开发人员在自己笔记本上创建并测试好的容器,无需任何修改就能够在生产系统的虚拟机、物理服务器或者云主机上运行
  • 特点
    • 容器在Host OS的用户空间运行,与操作系统的其他进程隔离。这一点显著区别于虚拟机
    • 传统的虚拟化技术,目标是创建完整的虚拟机。为了运行应用,除了部署应用本身及其依赖(通常几十MB),还得安装整个操作系统(几GB),由于所有的容器共享同一个Host OS,这使得容器在体积上要比虚拟机小很多。另外,启动容器不需要启动整个操作系统,所以容器部署和启动速度更快,开销更小,也更容易迁移

为什么使用容器

  1. 应用包含多种服务,都有自己所依赖的库和软件包,存在多种部署环境,需要动态迁移到不同的环境中
  2. 如何让每种服务能够在所有部署环境中顺利运行?

Dicker容器技术概述

  • Docker并没有发明容器,更像是容器的前端和外围工具
  • Docker核心在于实现应用与运行环境整体打包以及打包格式统一
  • Docker并不是容器技术的唯一选择

Docker引擎

  • Docker是一个开源的应用容器引擎,让开发者可以打包应用以及依包到一个可移植的容器中,然后发布到任何流行的Linux机器
  • 基于Go语言开发,遵从Apache2.0协议开源
  • 在红帽和ubuntu的系统中有较好的支持

Docker解决的问题

  • 应用环境管理复杂,包括OS,中间件,各种App等。
  • 减化环境管理复杂度,减化应用实例部署工作,将应用打成Image部署,包括Web应用,DB应用,Hadoop应用,消息队列等。
  • 提供分发和标准化管理。

Docker三组件

  • Docker Client:用户界面,支持用户与Dockers Daemon之间通信
  • Docker Daemon:运行于主机上,处理服务请求
  • Docker Registry:支持拥有公有与私有访问权限的Docker容器镜像仓库

Docker三要素

  • Docker Containers:负责应用程序的运行,包括操作系统、用户添加的文件以及元数据
  • Docker Images:构建容器的只读模板,用来运行Docker容器
  • DockerFile:文件指令集,用来说明如何自动创建Docker镜像

Docker总体架构

图片加载失败

Docker容器的优势

提供轻量级虚拟化。

  • Vmware , KVM , XenServer都是重量级虚拟化技术。
  • 用户需要高效运行环境,而非整个机器。
  • 一次构建、到处运行 。

Docker容器虚拟化

Docker容器实在操作系统层面上实现虚拟化,直接复用本机主机的操作系统,而传统则是在硬件层面实现

容器与虚拟化

容器与虚拟化

参考文章

笔记内容由博主的一个很帅同学整理