Docker基础原理

基于Linux内核,因此可以装载各种语言应用。是一种崭新的Paas微平台。本质是一个允许创建镜像并让镜像的实例运行在容器的软件。Docker利用容器将资源进行有效隔离,提高了安全性。

namespace

对容器进行网络、通信、文件、权限等对象的隔离。
6项隔离
隔离

cgroups

实现了对系统资源的限额和度量。

其他Linux Kernel相关技术

selinux,apparmor:增强对容器的访问控制。
capabilities:将root的权限分割成各种不同的capabilities权限,从而更严格控制容器的权限。
netlink:完成容器的网络环境配置及创建。

容器管理技术

lxc;第一个完整意义的容器管理技术,可方便的创建、启动及停止容器,也可以同过lxc操作容器中的应用或查看容器运行状态。
libcontainer:Docker开发的原生的容器管理技术来代替lxc。

Docker构造:Client-Server

构造

Docker技术原理

技术原理
execdriver:存储了容器定义的配置信息。libcontainer拿到配置信息后将会调用namespace,cgroups等技术完成容器的创建及管理。
networkdriver:完成容器网络环境的配置。
graphdriver:管理容器镜像。

Docker VS VM

vs
为啥隔离性VM强:VM各个系统用各自内核,而Docker共用一个。

Docker容器

三种状态:
状态

Docker镜像

镜像
镜像下载到容器后,run启动容器;
容器修改后,commit保存新的镜像(然而Dockerfile的build更常用)。
层级结构。

build,ship,run

build once run everywhere
一次构建,任何地方运行。

Docker数据卷

数据卷存在的意义:

  1. 容器运行时可使用数据卷中的文件。
  2. 数据卷可在多个容器间共享。
  3. 存储容器运行过程中产生的数据。
  4. 方便主机对容器数据的访问。

Docker网络模式

Bridged:容器可与主机上的容器,主机外部进行通信。
Host:容器只能与主机通信。
Container:容器只能与容器通信。
None:没网。

容器编排

管理容器下的主机,容器及容器及其逻辑关系。
广义编排

Docker平台三大编排工具

- Mesos

Mesos构建的Docker平台中,容器为最小的单元!
Slave安装在集群节点上,会将节点的资源使用情况周期性的报告给Master。
Master为管理集群节点。
Executer为容器的引擎。
Mesos
Mesos配合计算架构的Framework进行资源调度。
1. Master定期将所有主机的计算机资源使用情况报告给Framework Scheduler;
2.Scheduler调配后下发部署的任务给集群节点;
3.节点上的Framework Executor获取任务进行容器的部署;
4.节点将部署结果反馈给Master;
5.Master会更新最新的主机资源状态给Scheduler。
Mesos一般与Marathon,Zookeeper一起使用构建Docker平台,如图,Mesos为一个可调用Docker引擎的Framework,Marathon可将容器按一定的调度策略部署到合适的主机上,Zookeeper保证Mesos和Marathon管理节点的高可用性,当Master节点宕机后,可快速选出新的Master节点,从而不影响整个逻辑架构。Zookeeper本身也为分布式的高可用架构。
配合

- Kubernetes

Kubernetes构建的单元中,pod是最小的单元,容器封装在pod中!

pod

同一个pod中的容器可方便的共享存储;
当一个存储目录挂载到一个容器下时,同个pod中的另一个容器也可以访问到这个存储。

架构

etcd:集群管理工具。
minion:普通节点。
master:管理节点。

架构
minion的kublet结合其cAdvisior及etcd将节点信息汇总到master。
master使用scheduler按一定的调度策略将pod调度到各个minion,使用repulatation,controller控制pod的数量及伸缩,使用services分配pod的IP和处理pod的负载均衡。

- Swarm(Docker原生开源容器管理项目)

swarm

三者对比

对比
Mwsos经历了大规模集群运行多年的考验;
Kubernetes本身就脱胎于谷歌的集群管理工具;
Swarm与Docker结合更为紧密。

负载均衡与服务发现

负载均衡:请求到达负载均衡器上时,负载均衡器将其平均分配到每个容器。
常用的负载均衡技术:haproxy,LVS,F5,Nginx.
服务发现:自动将容器的配置信息,包括IP,端口,域名等上传到配置中心。负载均衡器会周期性的从配置中心获取相关的配置信息,并且将容器加入相关的负载均衡器访问架构中。
常用的服务发现技术:Etcd,Zookeeper,Consul。
图示

日志管理

容器时代对日志处理平台的要求是:集中化、海量存储、灵活过滤、快速查询、伸缩性架构、高可用、强大的UI。

Docker监控

监控

Docker平台架构

架构

应用场景

快速交付与CICD

YINGY

云间迁移

B

弹性扩展

C
容器化后,应用扩展其实就是拉取镜像部署更多容器的过程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值