更新時間:2020-05-27 來源:黑馬程序員 瀏覽量:
了解了Docker內部引擎及作用后,我們還需要通過Docker的具體架構,了解Docker的整個運行流程。接下來借助Docker官網的架構圖對Docker架構進行詳細說明,如下所示:
從上圖中可以看出,Docker架構主要包括Client、DOCKER_HOST和Register三部分,關于這三部分的具體說明如下。
1. Client(客戶端)
Client即Docker客戶端,也就是上一小節Docker Engine中介紹的docker CLI。開發者通過這個客戶端使用Docker的相關指令與Docker守護進程進行交互,從而進行Docker鏡像的創建、拉取和運行等操作。
2. DOCKER_HOST(Docker主機)
DOCKER_HOST即Docker內部引擎運行的主機,主要指Docker daemon(Docker守護進程)??梢酝ㄟ^Docker守護進程與客戶端還有Docker的鏡像倉庫Registry進行交互,從而管理Images(鏡像)和Containers(容器)等。
3. Registry(注冊中心)
Registry即Docker注冊中心,實質就是Docker鏡像倉庫,默認使用的是Docker官方遠程注冊中心Docker Hub,也可以使用開發者搭建的本地倉庫。Registry中包含了大量的鏡像,這些鏡像可以是官網基礎鏡像,也可以是其他開發者上傳的鏡像。
我們在實際使用 Docker 時,除了會涉及圖中的 3 個主要部分外,還會涉及很多Docker Objects(Docker對象),例如Images(鏡像)、Containers(容器)、Networks(網絡)、Volumes (數據卷)、Plugins(插件)等。其中常用的兩個對象Image和Containers的說明如下。
·Images(鏡像)
Docker鏡像就是一個只讀的模板,包含了一些創建Docker容器的操作指令。通常情況下,一個Docker鏡像是基于另一個基礎鏡像創建的,并且新創建的鏡像會額外包含一些功能配置。例如:開發者可以依賴于一個 Ubuntu 的基礎鏡像創建一個新鏡像,并可以在新鏡像中安裝Apache等軟件或其他應用程序。
·Containers(容器)
Docker 容器屬于鏡像的一個可運行實例(鏡像與容器的關系其實與 Java 中的類與對象相似),開發者可以通過API接口或者CLI命令行接口來創建、運行、停止、移動、刪除一個容器,也可以將一個容器連接到一個或多個網絡中,將數據存儲與容器進行關聯。