1.什么是容器
一种虚拟化的方案,直接运行在操作系统上的虚拟化空间
操作系统级别的虚拟化
只能运行相同或相似内核的操作系统,依赖于Linux内核特性:Namespace和Cgroups(ControlGroup)
Docker只能运行在Linux内核之上
容器技术优点:
2.什么是Docker
将应用程序自动部署到容器,基于Apache 2.0协议
Go语言开源引擎 Github地址:https//github.com/docker/docker
3Docker的目标
提供简单轻量的建模方式,职责的逻辑分离,快速高效的开发生命周期,鼓励使用面向服务的架构
4Docker的应用场景
Docker容器开发、测试、部署服务
创建隔离的运行环境
搭建测试环境
构建多用户的平台服务 (PaaS)基础设施
提供软件即服务 (SaaS)应用程序
高性能、超大规模的宿主机部署
5Docker基本组成
Docker Client
Docker Daemon
Docker Image
Docker Container
Docker Registry
Docker客户端/守护进程,Docker是CS架构。Docker Image镜像是容器的基石
Docker是一个层叠的只读文件系统,使用联合加载技术
Docker Container容器,通过镜像启动,启动和执行阶段定时复制(Coper on Writer)
Docker Registry 仓库,Docker Hub上有多个镜像,通过注册账号,包含公有和私有仓库
Namespaces命名空间
编程语言
封装到代码隔离,系统文件的隔离
PID(Process ID)进程隔离
NET(Network) 管理网络接口
IPC(InterProcess Communication)管理跨进程通信的访问
MNT(Mount) 管理挂载点
UTS(Unix Timesharing System)隔离内核和版本标识
Control Groups控制组
用来分配资源,来源于google Linux kernel 2.6.24@2007
资源限制、优先级设定、资源计量、资源控制
Docker容器的能力
文件系统隔离:每个容器都有自己的root文件系统
进程隔离:每个容器都运行在自己的进程 环境中
网络隔离:容器间的虚拟网络 接口和IP地址都是分开的
资源隔离和分组:使用cgroups将CPU和内存之类的资源独立分配 给每个Docker容器