简介

开始

虽然隔离技术不彻底,但是被广泛的运行在超大规模的多租户服务部署,轻量级沙盒以及对安全环境要求并不高的隔离环境中。

大规模服务部署

沙盒环境

有安全保证的环境

这些环境在内部网络的保护下,安全不是重点考虑的前提下,资源利用将成为主要矛盾

容器技术是精益技术,因为容器需要的开销有限,由于不需要传统虚拟化所依赖的模拟层(emulation layer)和管理层(hypervisor layer),而是使用了操作系统的系统调用,从而降低了容器的开销,进而增加了部署密度。

Docker简介

Docker是一个能够把开发的应用程序自动部署到容器的开源引擎。

Docker组件

Docker的组件分为:

  • Docker客户端和服务端
  • Docker镜像
  • Registry
  • Docker容器

基本架构如下:

@startuml
component DockerClient
component DockerDaemon
component Registry
component DockerImage
component DockerContainer

DockerClient --> DockerDaemon : cmd
DockerDaemon --> DockerContainer : manage
Registry --> DockerImage : manage
DockerDaemon --> Registry : pull&push image
@enduml

镜像是基于联合文件系统的一种层式结构,由一系列指令一步一步构建出来。可以把镜像理解为容器的“源代码”。

Docker使用Registry来保存用户构建的镜像。

镜像是Docker生命周期中构建或者打包的阶段,而容器则是启动或者执行阶段。

总结起来,Docker容器是:

  • 一个镜像格式

    AUFS,一种交付方式

  • 一系列标准的操作

    定义了操作,面向运维

  • 一个执行环境

    lxc,运行环境

和集装箱一样,Docker在执行上述操作时,并不关心容器中塞了什么,Docker不关心你要把容器运到何方:可以再自己的笔记本上完成构建容器,上传到Registry,然后下载到一个物理或者虚拟服务器上测试,然后再把容器部署到amazon的ec2上去。

想标准集装箱一样,Docker容器方便替换,可以叠加(多层),易于分发,并且通用

Docker的用途

Docker可以被用来:

  • 加速本地开发和构建流程
  • 创建隔离的环境来进行测试
  • 本机可以使用其构建一个复杂的程序或者架构来进行测试
  • 为开发、测试提供了一个轻量的独立沙盒环境
  • 提供软件及服务的程序,比如memcached

Docker的技术特性

Docker的技术特性:

  • 文件系统隔离:每个容器都有自己的root文件系统
  • 进程隔离:每个容器运行在自己的进程环境中
  • 网络隔离:容器间的虚拟网络接口和IP地址都是分开的
  • 资源隔离和分组:使用cgroups时cpu和内存等资源独立分配给容器
  • 写时复制:文件系统写时复制创建,文件系统分层

资源的隔离和规划

交付形式的统一,能方便做到开箱即用

results matching ""

    No results matching ""