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
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
相关文章推荐
- 【S2HS学习笔记】第二章节:JSP/Servlet及相关技术详解
- 大数据学习笔记之二十 云存储的相关技术
- Docker+ K8S 学习(一):Docker 介绍以及其相关术语、底层原理和技术
- 【IOS移动开发技术】iOS软件开发中关于屏幕旋转处理相关的学习笔记
- Docker的学习笔记(开发的技术分享转发)
- Docker学习笔记2--频繁使用的相关命令
- Docker学习笔记2--频繁使用的相关命令
- Java EE学习笔记之一——JSP/Servlet相关技术
- C#学习笔记④——.NET的OOP技术相关
- [置顶] Docker容器技术 学习笔记汇总
- BI学习笔记之二- BI的体系架构与相关技术
- XML学习笔记---------xml相关技术
- docker 学习笔记1——安装与相关概念
- 集装箱式的轻量级Linux虚拟化技术PaaS——Docker相关学习资料
- Docker 学习笔记【1】Docker 相关概念,基本操作
- 大数据学习笔记之二十三 云存储的统一存储和相关技术
- JSP及Servlet相关基础技术 学习笔记
- 【容器技术】非常详细的 Docker 学习笔记
- Docker镜像相关命令(学习笔记)
- Docker学习笔记(一)docker介绍及相关概念