docker namespace

目前docker完成6項隔離web

namespace 系統調用參數 隔離內容
UTS CLONE_NEWUTS 主機名與域名
IPC CLONE_NEWIPC 信號量,消息隊列,共享內存
PID CLONE_NEWPID 進程編號
Network CLONE_NEWNET 網絡設備,網絡棧,端口等
Mount CLONE_NEWNS 掛載點(文件系統)
User CLONE_NEWUSER 用戶和用戶組
     

 

 

 

 

 

 

 

 

 

Linux 內核3.8及之後的版本docker

namespace 的API包括網絡

   clone()spa

   setns()隊列

   unshare()進程

Mount namespace:
隔離文件系統掛載點,每一個進程能看到的文件系統都記錄在/proc/$$/mounts裏,
UTS namespace:
使每一個docker擁有獨立的主機名和域名,在網絡上能夠被視爲一個獨立的節點,而非宿主機的一個進程
IPC namespace:
涉及到的IPC資源有包括常見的信號量,消息隊列和共享內存,容器和宿主機,容器與容器之間,容器與宿主機之間隔離
PID namespace:
對進程PID從新標號,兩個不一樣的namespace下的進程能夠有相同的PID,內核中爲全部的PID維護了一個樹狀結構,最頂層的是系統初始時創建的即root namespace,它建立的新PID namespace被稱爲child namespace(樹的子節點),經過這種方式,不一樣的PID namespace會造成一個層級體系,全部的父節點能夠看到子節點中的進程,並經過信號的方式對子節點中的進程產生影響,可是子節點看不到父節點PID namespace中的任何內容
Nework namespace:
對網絡相關資源進行隔離,每一個network namespace都有本身的網絡設備,IP地址,路由表,/proc/net 目錄,端口號等, 有了網絡隔離,好比有兩個容器的web應用都是用了80端口,由於隔離就不會衝突
User namespace:
隔離用戶和組ID,也就是說一個進程在namespace裏和用戶和組ID能夠和它在host裏的ID能夠不同,
相關文章
相關標籤/搜索