Container

  容器是一种基础工具,泛指任何可以容纳其它物品的工具。

Linux Namespaces (docker容器技术主要是通过6个隔离技术来实现)

namespace   系统调用参数   隔离内容  内核版本  
UTS  CLONE_NEWUTS主机名和域名2.6.19
IPCCLONE_NEWIPC信息量、消息队列和共享内存2.6.19
PIDCLONE_NEWPID进程编号2.6.24
NetworkCLONE_NEWNET

网络设备、网络栈、端口等

2.6.29
MountCLONE_NEWNS挂载点(文件系统)2.4.19
UserCOLNE_NEWUSER用户和用户组3.8

Control Groups, CGroups控制组 (一般用来限制资源使用)把系统级的资源分成多个组,然后把每个组内的资源量指派或者分配到不同的用户空间进程上。

  blkio:块设备IO

  cpu: CPU

  cpuacct: CPU资源使用报告

  cpuset:多处理平台上的CPU集合

  devices:设备访问

  freezer:挂起或恢复任务

  memory:内存用量报告

  perf_event: 对从group中的任务进行统一性能测试

  net_ds:cgroup中的任务创建的数据报文的类别标识符

LXC (LinuX Container) 最早实现容器技术的一个工具(容器属于linux内核中的一个技术)

  当使用lxc-create 创建容器的时候,它不会激活模板去让你安装,而是连接到服务器下载匹配你穿件模板的一个镜像,从而把镜像拖到本地,并基于镜像来启动容器。把一个容器当一个用户控件使用。

docker是LXC的增强版 其实也是一个管理工具,只是docker是基于镜像来实现的,而LXC是基于模板来实现的。

编排工具

compose:单机编排

machine+ swarm +compose  集群编排

mesos+marathhon

kubernetes

05-11 15:23
查看更多