Docker的基本組成

2021-09-08 03:36:17 字數 1475 閱讀 8459

docker通過客戶端訪問守護程序,從而操作docker容器,而容器是通過映象建立的,docker映象儲存在docker倉庫中。

docker客戶端向docker守護程序傳送請求,docker守護程序處理完所有請求並返回結果。docker對守護程序的訪問既可以在本地,也可以是遠端訪問。如圖所示,通過docker客戶端執行各種命令,然後docker客戶端會將這些命令傳送給守護程序,守護程序執行的結果會傳送給客戶端。

映象是docker容器的基石,容器基於映象啟動和執行,映象可以看做容器的源**,儲存了用於啟動容器的各種條件。docker映象是乙個層疊的唯讀檔案系統,最底層是乙個引導檔案系統bootfs,docker使用者很少與引導檔案系統有互動。實際上當乙個容器啟動後,將會被移動到記憶體中,而引導檔案系統則會被解除安裝。docker檔案的第二層是root檔案系統rootfs,位於引導檔案系統之上,root檔案系統可以是一種或多種的作業系統,比如centos、ubuntu等。

在傳統的linux引導過程中,root檔案系統會最先以唯讀形式載入,當引導結束並完成了完整性檢查後才會被切換為讀寫模式。但docker中root檔案系統永遠只能是唯讀狀態,並且docker利用聯合載入技術(union mount)又會在root檔案系統之上載入更多的唯讀檔案系統,聯合載入是指一次載入多個檔案系統,但在外面看起來只能看到乙個檔案系統,聯合載入會將各層檔案系統疊加在一起,最終檔案系統會包括底層檔案和目錄,docker將這樣的檔案系統稱為映象。乙個映象可以放到另乙個映象頂部,位於下面的映象稱為父映象,最底部的映象稱為基礎映象,也即是上面所說的rootfs。

docker容器通過映象啟動,容器是docker的執行單元,容器中可以執行客戶的多個程序。如果說映象是docker生命週期的構建和打包階段,那麼容器則是啟動和執行階段。那麼容器是怎麼通過映象啟動的?如圖docker映象的結構,當乙個容器啟動時docker會在該映象的最頂層載入乙個讀寫檔案系統(可寫檔案層),docker中執行的程式就是在讀寫層中執行的,當docker第一次啟動乙個容器時初始的讀寫層是空的。當檔案系統發生變化時,這些變化都會應用到這層上。比如修改檔案,會首先將下面層的檔案複製到讀寫層,該檔案的唯讀版本依然存在,只不過被讀寫層中的副本所隱藏,這就是docker中另乙個重要技術寫時複製(copy on write)。每個唯讀映象層永遠是唯讀的,當建立乙個新容器時,docker會構造出乙個映象棧,在棧最定層新增讀寫層,讀寫層、映象層及一些配置資料就組成了乙個容器。

docker用倉庫儲存使用者建立的映象,倉庫分共有和私有兩種,docker公司自己提供了倉庫docker hub,可以在docker hub上建立賬戶,儲存分享自己建立的映象。當然也可以架設私有倉庫。

Docker基本組成

docker client 客戶端 docker daemon 守護程序 c s架構的程式,docker客戶端向docker的伺服器端 守護程序 發出請求,守護程序處理完所有的工作,並返回結果 客戶端對伺服器端的訪問既可以在本地也可以在遠端來訪問。docker image 映象 1 理解一 映象是d...

Docker的基本組成

docker主要有以下幾部分組成 docker client 客戶端 docker daemon 守護程序 docker image 映象 docker container 容器 docker registry 倉庫 客戶端和守護程序 docker是c s 客戶端client 伺服器server 架...

Docker的基本組成

docker使用c s架構,client 通過介面與server程序通訊實現容器的構建,執行和發布。client和server可以執行在同一臺集群,也可以通過跨主機實現遠端通訊。docker是c s架構的程式,docker的客戶端向守護程序發起請求,守護程序處理完成後返回結果。docker客戶端既可...