Docker概念
docker13 年初開源,公司本來叫 dotcloud,后改名叫 docker。被 Mitantis 收購?;趌inux 內核的 cgroup,namespace,以及 AUFS 類的 Union FS 等技術,對進程進行封裝隔離,屬于操作系統層面的虛擬化技術。由于隔離的進程獨立于宿主和其他的隔離的進程,因此也稱其為容器。
docker 就是容器,容器就是 docker,并不是這樣的,容器就是一個技術類型。而 docker 是當下最主流的,容器的一種實現容器的方案,docker 只是容器其中一種實現方案,其他方案包括:LXC,Mesos,RKT 等等。
容器和傳統虛擬化最大的一點區別,就是虛擬化的封裝是系統級的封裝,docker或者其他容器是進程級的封裝。和傳統虛擬化最大的一點區別,就是虛擬化是系統級的封裝,容器是進程級封裝。
Docker 底層隔離技術
Namespaces
作用:訪問隔離Docker 主要就是借助 Linux 內核技術 Namespace 來做到隔離的,Linux Namespaces 機制提供一種資源隔離方案。PID,IPC.NETwork 等系統資源不再是全局性的,而是屬于某個特定的 Namespace。每個 namespace 下的資源對于其他 namespace 下的資源都是不可見的。因此在操作系統層面上看,就會出現多個相同 pid 的進程。系統中可以同時存在兩個進程號為 0, 1,2 的進程,由于屬于不同的 namespace,所以它們之間并不沖突。而在用戶層面上只能看到屬于用戶自己 namespace 下的資源,例如使用 ps 命令只能列出自己 namespace 下的進程。這樣每個 namespace 看上去就像一個單獨的 Linux 系統。IPCNetWorkmountPIDUTSUser
Control groups作用:做資源控制,CPUMEM寬帶等提供的一種可以限制、記錄、隔離進程組所使用的物理資源(如 cpu、memory、磁盤 IO 等等)的機制,被 LXC、docker 等很多項目用于實現進程資源控制。cgroup 將任意進程進行分組化管理的 Linux 內核功能。cgroup 本身是提供將進程進行分組化管理的功能和接口的基礎結構,I/O 或內存的分配控制等具體的資源管理功能是通過這個功能來實現的。
Rootfs作用:文件系統隔離






