您的位置:首页 > 运维架构 > Docker

Docker相关技术学习笔记

2017-11-25 21:10 627 查看
1.Docker是什么?

Docker是一种轻量虚拟化技术,之所以说轻量,是相比于传统的虚拟机,docker是轻量的。每创建一个传统的虚拟机启动一个进程,当在传统的虚拟机内启动一个进程时宿主机看不到其内部的进程、而轻量虚拟机则可以;轻量虚拟机不能再跑一个系统(windows、centos等)、传统的虚拟机则可以;传统的虚拟机之所以相对重量级一些,是因为创建速度慢;而且,如果一台机器上可以启动40个传统的虚拟机、那么可以启动400到1000个轻量化虚拟机

2.轻量虚拟化的产生

在Linux进程中,每个进程都存在资源的使用,包括Linux内核、文件系统、网络系统、PID、UID、IPC等资源,内存、CPU、磁盘等资源。每个进程共享这些资源且可以接触到的资源是完全一样的。但是有时我们需要1.资源隔离(不同进程有独立的资源环境);2.资源限制(限制某些进程所能使用的资源);3.能对一组进程进行资源隔离和限制。在这种情况下,轻量虚拟化应运而生。运行在满足以上条件下的进程组,我们称它们运行在一个Container中。Docker就是这样的一种容器。

3.Docker的底层技术:

namespace: 实现PID隔离分组,比如虚拟机A中一个进程的PID是1,虚拟机B中一个进程的PID也是1,但是在宿主机内,这两个进程的PID分别为3和4

cgroups:control group实现虚拟机使用的资源隔离

chroot: change root 实现虚拟机文件目录隔离

veth: 实现外界-宿主机-虚拟机的网络交互

union fs(AUFS): 创建虚拟机时,如果把宿主机上的文件系统模版都进行复制,则需要几百兆到1G,使用union fs可以通过mount直接获取这个模版,对于当前容器的改动则可以直接以copy-on-write的形式存储在文件系统顶层。

iptable、netfilter:用于包过滤、转发

tc: traffic controller 流量控制,限制虚拟机使用的网络带宽

quota: 实现对虚拟机磁盘大小的限制

在容器管理方面,LXC是利用以上这些技术创建轻量级虚拟机,libvert也可以使用以上这些技术创建轻量级虚拟机,但其产生是为虚拟机提供一套标准的接口

4.网络相关技术

routing、VLAN、Linux bridge/ovs bridge

5.安全相关

grsec、apparmor、SELinux

6.高级

warden/Imctfy/openVZ

7.相关开源项目

panamax、kubernetes、coreos、flynn、

8.PAAS平台

cloudfoundry、heroku、openshift、BAE
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: