Docker 基本理解

容器: 磁盤占用空間更少

虛擬機: 應用 依賴的庫 完整的操作系統 ?docker : 應用. ? 依賴的庫

虛擬機: 模擬硬件行為 耗內存 cpu ?

docker 不需要

由于容器不容易安裝和管理 ?docker可以 把開發的應用程序自動部署到容器里的開元引擎

Docker作用

1.開發 ?測試 部署服務

2.隔離的運行環境

3.搭建測試環境

docker 基本組成

docker client 客戶端 ? ?:c/s ?本地/遠程

docker daemon ? ? ? ? ? ? :守護進程

docker image 鏡像 ? ?:容器的基石 ?容器的源代碼 啟動容器的各種條件 ?層疊只讀文件

docker container 容器 :通過鏡像啟動 ?寫時復制 copy on write ? run命令啟動容器

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?:創建新容器時 docker會構建出一個鏡像棧 ?棧的最頂層添加可寫層

docker registry 倉庫 : 用倉庫保存用戶構建的鏡像 ?通過倉庫查找鏡像 pull 下載鏡像 ?公有 docker hub ?私有

通過客戶端訪問守護進程 操作容器 容器存儲在鏡像里 而鏡像保存在倉庫里

docker 依賴 linux 內核特性

namespaces 命名空間

封裝 :代碼的隔離

操作系統 :系統資源的隔離 (進程 文件系統 ?網絡 .....)

PID (process ID) :進程的隔離

NET (Network) :管理網絡接口

IPC (InterProcess Communication):管理跨進程通信的訪問

MNT(Mount) :掛載點 文件系統相關隔離

UTS(Unix Timesharing System) :隔離內核和版本標識

Control groups是linux 提供的 限制 記錄 隔離 進程組 所使用的機制 Control groups 就是為了實現容器而生

Control groups 提供功能

資源限制 :給進程組設定內存使用上限

優先級設定 :哪些優先使用

資源計量 :計算進程組使用了多少資源 計費系統中很重要

資源控制 ? :可以將進程組掛起和恢復

docker 容器的能力

文件系統的隔離 :每個容器都有自己的root 文件系統

進程的隔離 :每個容器都運行在自己的進程環境中

網絡隔離 :容器間的虛擬網絡接口和IP 地址都是分開的

資源隔離和分組 :使用cgroup 將CPU 和內存之類的資源獨立分配給每個docker 容器

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容