1 Namespacehtml
用來作PID的隔離,有了namespace,在docker container裏頭看來,就是一個完整的linux的世界。在host看來,container裏的進程,就是一個普通的host進程,namespace提供這種pid的映射和隔離效果,host承載着container,就比如造物者創造一個個世外桃源。linux
2 Cgroupsdocker
在個人另一篇博文裏,有詳細介紹cgroup如何作到內存,cpu和io速率的隔離,移步cgroups安全
3 Chroot網絡
如何在container裏頭,看到的文件系統,就是一個完整的linux系統,有/etc、/lib 等,經過chroot實現ui
4 Vethspa
container裏,執行ifconfig能夠看到eth0的網卡,如何通訊呢?實際上是在host上虛擬了一張網卡出來(veth73f7),跟container裏的網卡作了橋接,全部從container出來的流量都要過host的虛擬網卡,進container的流量也是如此。htm
5 Union FSblog
對於這種疊加的文件系統,有一個很好的實現是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!