Docker 容器服务基础知识

2018-11-27 0 By admin

Docker是容器技术的一种实现手段。一种虚拟化的方案,在操作系统级别的虚拟化,不同于虚拟化软件(Vmware,virtualbox等)
只能运行相同或者相似内核的操作系统;依赖于Linux内核特性:NameSpace和Cgroups(Control Group)

一、NameSpace 命名空间

系统资源的隔离:进程、网络、文件系统。。。
PID 进程隔离
NETwork 网络设备、网络栈、端口等
IPC (InterProcess Communication) 跨进程通信的访问(信号量、消息队列和共享内存)
MNT(Mount) 挂载点(文件系统)
UTS (Unix Timesharing System) 内核和版本的标识(主机名和域名)
UIser 用户和用户组

二、ContrlGroups

用来分配资源 Google公司 从Linux Kernel 2.6.24@2007 开引入
资源限制
优先级设定
资源计量
资源控制

三、Docker 服务介绍

3.1、Docker 服务特性说明

将应用程序自动部署到容器
Go语言开源引擎
基于Apache 2.0开源授权协议发行
rootfs:文件系统隔离;
容器引擎:生命周期控制;

3.2、Docker 容器能力

文件系统隔离:每个容器都有自己的root文件系统
进程隔离:每个容器都运行在自己的进程环境中
网络隔离:容器间的虚拟网络接口和IP地址都是分开的
资源隔离和分组:使用cgroups将CPU和内存之类的资源独立分配给每个Docker容器

3.3、Docker 使用场景

使用Docker容器开发、测试、部署服务
创建隔离的运行环境
构建多用户的平台即服务(PaaS)基础设施
提供软件即服务(SaaS)应用程序
高性能、超大规模的宿主机部署

四、Docker 容器服务组成

1、Docker Client 客户端
2、Docker Daemon 守护进程
3、Docker image 镜像
容器的基石、层叠的只读文件系统、联合加载(union mount)
4、Docker Container 容器
通过镜像启动
启动和执行阶段
写时复制(Copy on write)
5、Docker Registry 仓库
共有仓库和私有仓库;Docker Hub