容器Namespaces 和 cgroups 以及补充

Linux Namespaces

容器Namespaces 和 cgroups 以及补充_第1张图片
所以 一般来说Docker需要使用内核版本3.2以上的Linux系统,比如centos7 以上版本和Ubuntu 14.04

CPU属于可压缩资源
内存属于非可压缩型资源 不可越界

Control Groups(cgroups)

容器Namespaces 和 cgroups 以及补充_第2张图片
核心是天然虚拟化隔离的屏障
因此,同核心使得容器虚拟化隔离性远不如主机虚拟化.

Docker在一个容器只运行一个进程,可以各种平台都可使用,即系统隔离无视平台无视语言,可移植。
但容器工具必须都每个都要准备一份
降低了开发复杂度
但必须使用编排工具运维

Docker构建:分层构建和联合挂载
容器编排工具swarm+compose
Docker machine
afs mesos+marathon
kubernetes -> k8s
目前主流使用k8s + docker

现在runC为docker的标准
演变lxc ->libcontainer->runC
PS:
容器Namespaces 和 cgroups 以及补充_第3张图片
docker hub (镜像仓库)
hub.docker.com
版本:stable 稳定版偶数,奇数开发版

仓库register采用的是多仓库
仓库名就是程序名 多版本tag标签即版本号 默认最新的版本或者这个程序的稳定版根据程序自身的情况决定
For: nginx:1.1.0
Image 镜像 (静态的)不会运行
Container 容器是动态的有生命周期
C/S架构
client 为client
dockerdaemon为server

client的api 采用的是 restful framework风格即采用https协议对资源可以进行增删改查
即client >> daemon 也使用的是https
images 到仓库 Registry 也使用的是HTTPS

你可能感兴趣的:(docker)