Docker(linux container) 所依赖的底层技术
1 Namespace
用来做PID的隔离,有了namespace,在docker container里头看来,就是一个完整的linux的世界。在host看来,container里的进程,就是一个普通的host进程,namespace提供这种pid的映射和隔离效果,host承载着container,就好比造物者创造一个个世外桃源。
2 Cgroups
在我的另外一篇博文里,有详细介绍cgroup如何做到内存,cpu和io速率的隔离,移步cgroups
3 Chroot
如何在container里头,看到的文件系统,就是一个完整的linux系统,有/etc、/lib 等,通过chroot实现
4 Veth
container里,执行ifconfig可以看到eth0的网卡,如何通信呢?其实是在host上虚拟了一张网卡出来(veth73f7),跟container里的网卡做了桥接,所有从container出来的流量都要过host的虚拟网卡,进container的流量也是如此。
5 Union FS
对于这种叠加的文件系统,有一个很好的实现是AUFS,在Ubuntu比较新的发行版里都是自带的,这个可以做到以文件为粒度的copy-on-write,为海量的container的瞬间启动,提供了技术支持,也会持续部署提供了帮助。不过以文件为粒度的copy-on-write带来一个问题,就是修改大文件时候,需要复制整个大文件进行修改,效率堪忧。
6 Iptables, netfilter
主要用来做ip数据包的过滤,比如可以做container之间无法通信,container可以无法访问host的网络,但是可以通过host的网卡访问外网等这样的网络策略
7 TC
主要用来做流量隔离,带宽的限制
8 Quota
用来做磁盘读写大小的限制,区别于cgroups对blkio的控制,quota是用来限制用户可用空间的大小
9 Setrlimit
可以限制container中打开的进程数,限制打开的文件个数等
抛砖引玉,希望大家对每一点技术做更加深入的了解与探索。以上是linux container一些基本的技术,docker基本是实现了前五个的技术,用libcontainer做了一层封装,要实现一个完整的安全的container技术,docker还有一些路需要走,期待docker的完善,大家可以多多关注这个2014年度最热的开源技术,docker!
Docker(linux container) 所依赖的底层技术的更多相关文章
- Ironic 裸金属管理服务的底层技术支撑
目录 文章目录 目录 底层技术支撑 DHCP NBP TFTP IPMI PXE & iPXE Cloud Init Linux 操作系统启动引导过程 底层技术支撑 PXE:预启动执行环境,支 ...
- 四:(之一和之二) docker架构和底层技术分析(C/S架构)
1.架构和底层技术 Docker Host提供了RESTUL api,使docker client可以通过这些命令调用dockerd. Registry是一个公用的存储镜像的容器,类似于github. ...
- 5、Docker架构和底层技术
5.1 Docker Platform Docker提供了一个开发,打包,运行APP的平台 把APP和底层infrastructure隔离开来 5.2 Docker Engine 后台进程(docke ...
- 2014 Container技术大会:未来Linux Container会是PaaS平台的核心
不应错过2014 Container技术大会的九大理由. 一.Docker官方人员再次来到北京,首次向中国布道Docker技术.2013年Docker高级软件工程师Jerome Petazzoni,曾 ...
- 实现容器的底层技术 - 每天5分钟玩转 Docker 容器技术(30)
为了更好地理解容器的特性,本节我们将讨论容器的底层实现技术.cgroup 和 namespace 是最重要的两种技术.cgroup 实现资源限额, namespace 实现资源隔离. cgroup c ...
- Redis in Docker on Linux Container
记录:在Docker中运行一个Redis实例当我们在Windows系统中安装好Docker以后,在Hyper-V中会自动创建一个Linux虚拟机,如果这个虚拟机没有运行,说明当前运行的是Windows ...
- Docker 容器(container)及资源限制
Container: 既然container是由image运行起来的,那么是否可以理解为container和image有某种关系?先来看张图: 其实可以理解为container只是基于image之后的 ...
- 云计算底层技术-虚拟网络设备(Bridge,VLAN)( 转发)
云计算底层技术-虚拟网络设备(Bridge,VLAN) Posted on September 24, 2017 by opengers in openstack openstack底层技术-各种虚拟 ...
- 支撑Java NIO 与 NodeJS的底层技术
支撑Java NIO 与 NodeJS的底层技术 众所周知在近几个版本的Java中增加了一些对Java NIO.NIO2的支持,与此同时NodeJS技术栈中最为人称道的优势之一就是其高性能IO,那么我 ...
随机推荐
- 129. Sum Root to Leaf Numbers
题目: Given a binary tree containing digits from 0-9 only, each root-to-leaf path could represent a nu ...
- osg设置相机参数,包括初始位置
严重注意!!!以下设置必须在viewer.realize();之后,否则不起作用!!!! 设置相机的位置,可以通过CameraManipulator(一般是osgGA::TrackballManipu ...
- 修改searchbar 取消 字体 颜色
UIButton *cancelButton; UIView *topView = self.searchDisplayController.searchBar.subviews[]; for (UI ...
- Android Service 与 Thread 的区别
Ref:http://blog.csdn.net/jiangwei0910410003/article/details/17008687 1). Thread:Thread 是程序执行的最小单元,它是 ...
- 谈谈我的编程之路---WAMP(三)
WAMP的一些配置与使用心得(APACHE)说实话,我感觉apache的配置真的还是蛮复杂的,感觉好像又在学一种语言,让我用比较庞大的概念来讲述这些东西,我也没办法做到就以实际应用出发出发,简单的说一 ...
- Android Support兼容包详解
原文:http://www.open-open.com/lib/view/open1427852683115.html
- javascript - DOM对象控制HTML元素详解
1.方法 getElementsByName() -- 获取name getElementByTagName() -- 获取 getAttribute() --获取元素属性 se ...
- phpexcel中文教程-设置表格字体颜色背景样式、数据格式、对齐方式、添加图片、批注、文字块、合并拆分单元格、单元格密码保护
转:http://www.cnblogs.com/huangcong/p/3687665.html 首先到phpexcel官网上下载最新的phpexcel类,下周解压缩一个classes文件夹,里面包 ...
- SQL Server数据库大型应用解决方案总结(转载)
转载地址:http://hb.qq.com/a/20120111/000216.htm 随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设计的瓶颈问题.对于一个大型的互联网应用,每天百万级甚至 ...
- Delphi编程建议遵守的规范2---命名规范
1.1.形参命名建议 所有形参的名称都应当表达出它的用途.如果合适的话,形参的名称最好以字母a 为前缀,例如: procedure SomeProc(aUserName:string; aUserAg ...