Docker相关技术学习笔记

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值