Docker的基本組成

2022-08-19 12:18:11 字數 1729 閱讀 7934

docker使用c/s架構,client 通過介面與server程序通訊實現容器的構建,執行和發布。client和server可以執行在同一臺集群,也可以通過跨主機實現遠端通訊。

docker是c/s架構的程式,docker的客戶端向守護程序發起請求,守護程序處理完成後返回結果。

docker客戶端既可以在本底訪問守護程序,也可以遠端訪問守護程序。

docker本身是乙個容器執行載體或者稱之為管理引擎。我們把應用程式和配置依賴打包好形成乙個可交付的執行環境,這個打包好的執行環境就叫image映象檔案。 只有通過這個映象檔案才能生成docker容器。image檔案可以看做是容器的模板。docker根據image檔案生成容器的例項。 同乙個image檔案,可以生成多個同時執行的容器例項。 

a)image檔案生成的容器例項,本身也是乙個檔案,稱為映象檔案; 

b)乙個容器執行一種服務,當我們需要的時候,就可以通過docker客戶端建立乙個對應的執行例項,也就是我們的容器; 

c)至於倉庫,就是放了一堆映象的地方,我們可以把映象發布到倉庫中,需要的時候從倉庫中拉下來就可以了。

映象(image)就是一堆唯讀層(read-only layer)的統一視角,也許這個定義有些難以理解,看看下面這張圖:

root檔案系統+唯讀檔案系統被稱為映象,映象是可以疊放的,最下層的稱為基礎映象[base image]、下面層的為父映象,當docker容器啟動時。docker會載入最頂層的讀寫檔案系統,我們程式就是在讀寫層中執行的

映象是乙個層疊的唯讀檔案系統,結構如下

bootfs 引導檔案系統,很像傳統的linux引導檔案系統

rootfs root檔案系統,可以是一種或多種作業系統,如ubuntu或centos,root檔案系統永遠只能是唯讀狀態

union mount 聯合載入技術,一次載入多個唯讀檔案系統到rootfs系統之上。在外圍看到的只是乙個檔案系統,聯合載入使各層檔案系統疊加到一起,使最終的檔案系統包含所有底層檔案系統和目錄,這樣的檔案系統就是映象

乙個映象可以放到另乙個映象的頂部,位於下邊的映象叫做父映象,依次類推,最底部的映象叫做基礎映象,指的是rootfs

docker 利用容器(container)來執行應用。容器是從映象建立的執行例項。它可以被啟動、開始、停止、刪除。每個容器都是相互隔離的、保證安全的平台。可以把容器看做是乙個簡易版的 linux 環境(包括root使用者許可權、程序空間、使用者空間和網路空間等)和執行在其中的應用程式。

容器的定義和映象幾乎一模一樣,也是一堆層的統一視角,唯一區別在於容器的最上面那一層是可讀可寫的。

倉庫(repository)是集中存放映象檔案的場所。有時候會把倉庫和倉庫註冊伺服器(registry)混為一談,並不嚴格區分。實際上,倉庫註冊伺服器上往往存放著多個倉庫,每個倉庫中又包含了多個映象,每個映象有不同的標籤(tag)。

當使用者建立了自己的映象之後就可以使用 push 命令將它上傳到公有或者私有倉庫,這樣下次在另外一台機器上使用這個映象時候,只需要從倉庫上 pull 下來就可以了。

docker 倉庫的概念跟 git 類似,註冊伺服器可以理解為 github 這樣的託管服務

Docker基本組成

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

Docker的基本組成

docker通過客戶端訪問守護程序,從而操作docker容器,而容器是通過映象建立的,docker映象儲存在docker倉庫中。docker客戶端向docker守護程序傳送請求,docker守護程序處理完所有請求並返回結果。docker對守護程序的訪問既可以在本地,也可以是遠端訪問。如圖所示,通過d...

Docker的基本組成

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