Docker筆記1-概述
參考文件:
Docker overview
The Docker platform
Docker提供可以在一個鬆隔離的環境中封裝和執行應用的能力,這個鬆隔離的環境被成為container。隔離和安全允許你在同一臺host同時執行多個container。Container是輕量級的,因為他們不需要額外載入管理者,而是直接在宿主機的核心上執行。這意味著相對於使用虛擬機器而言,你可以在一套硬體裝置上執行更多的container。你甚至可以使用虛擬機器作為宿主機,並在上面執行多個container。
Docker提供工具和一個平臺來管理container的生命週期:
- 使用container開發應用和支援它的元件。
- container成為分割應用和測試應用的單元。
- 當你準備好後,使用container或一組協調工作的service來將應用部署到生產環境。無論你的生產環境是本地資料中心、雲服務提供者還是二者混合,所產生的效果是一樣的。
Docker Engine
Docker Engine是一個客戶端-服務端(C/S)應用,它具備以下幾個主要元件:
- 一個長期執行的守護程式型別的服務(the dockerd command)
- 一套REST API,用於指定程式訪問docker daemon併為其提供指令。
-
一個控制檯客戶端(command line interface, CLI)(the docker command)
客戶端控制檯(CLI)使用Docker REST API通過指令碼或CLI命令來控制或影響Docker daemon。
Docker daemon建立並管理Docker物件(Docker objects),如映象(images),容器(containers),網路(networks),資料卷(volumes)。
Docker架構
Docker使用C/S架構。Docker Client(客戶端)訪問Docker Daemon(服務端),Docker daemon負責建立、執行、分割Docker container。
Docker Client和Docker Daemon可以在同一個系統下執行,也可以使用Docker Client遠端連線Docker daemon。client和daemon通過REST API訪問。
The Docker daemon
Docker daemon(dockerd)監聽Docker API請求並管理Docker物件,如image,container,network,volume。daemon也可以訪問其他daemon來管理docker service。
The Docker Client
Docker client(docker)是使用者用於影響Docker的私有方式。當你使用Docker命令如docker run
,client傳送這些命令到dockerd服務,並由dockerd服務執行。docker
命令使用Docker API。Docker client可以訪問多個daemon。
Docker registries(Docker註冊中心)
Docker registries儲存Docker image。Docker Hub和Docker Cloud是對所有人開放的註冊中心,並且Docker預設向DockerHub索取image。你可以建立私有註冊中心。如果使用Docker Datacenter (DDC),它包含了Docker Trusted Registry (DTR)。
當使用docker pull
或者docker run
命令時,所需要的image會從配置好的註冊中心中拉取下來。當使用docker push
命令時,image推送到註冊中心。
你可以通過pull新版本的image並重新部署container來升級應用。
Docker objects
當你使用Docker時,你就在建立並使用image、container、network、volumes、plugin等物件。
映象(IMAGE)
image是一個整合用於建立Docker container指令的只讀的模版。通常情況下,一個image是基於另一個image,並新增一些額外的配置而來。
你可以自己建立image或者僅僅是從註冊中心獲取image並使用。
建立image
建立Dockerfile檔案。該檔案使用一些簡單的語法來定義建立映象所需要的步驟,並執行這些步驟。
Dockerfile中的每條指令會在image中建立一個新的層(layer)。
當你改變Dockerfile並重新建立image時,僅僅重建那些有變動的層。
容器(CONTAINERS)
容器是一個映象的可執行例項。
你可以使用Docker API或CLI建立、啟動、停止、移動和刪除container。
你可以將一個container連線至一個和多個網路、向其附加儲存器,也可以基於container的當前狀態建立一個新的image。
預設情況下,一個container相對於其他container和它的host machine是隔離的。你可以控制怎樣隔離container的網路、儲存,或者來自其他container和來自host machine的底層系統。
container由它的image和建立或啟動container時提供的配置項定義的。當一個container移除時,任何沒存儲存在持久化儲存中的狀態的更改都將丟失。
服務(SERVICE)
service允許跨多個Docker daemon擴充套件容器,他們將成為一個swarm,且擁有多個manager和worker。swarm中的每個成員都是一個Docker daemon,並且daemon都通過Docker API互相訪問。
service允許你定義期望的狀態,比如service在某一時間所需要執行的副本數量。
預設情況下,service的所有worker節點是負載均衡的。對於消費者來說,Docker service看上去就像一個應用一樣。
相關文章
- http協議讀書筆記1-概述HTTP協議筆記
- CMake構建學習筆記1-概述筆記
- 【Docker】Docker概述Docker
- RMAN筆記——綜合概述筆記
- 筆記:Docker筆記Docker
- Docker筆記Docker筆記
- docker 筆記Docker筆記
- CSS-多列布局1-概述CSS
- 計網筆記(1)——概述筆記
- vue學習筆記1-基本知識Vue筆記
- Ext學習筆記1-基礎概念筆記
- docker使用筆記Docker筆記
- docker 筆記4Docker筆記
- docker 筆記2Docker筆記
- Docker Stack 筆記Docker筆記
- docker筆記(一)Docker筆記
- Boltdb學習筆記之〇--概述筆記
- 資料結構筆記——概述資料結構筆記
- Isaac Lab 學習筆記:概述筆記
- Docker 前沿概述Docker
- flask文件學習筆記1-快速入門Flask筆記
- MoveIt! 學習筆記1- MoveGroup C++ Interface筆記C++
- JAVANIO學習筆記1-架構簡介Java筆記架構
- 高效能mysql筆記---mysql架構[-1-]MySql筆記架構
- 區塊鏈系列1-區塊鏈概述區塊鏈
- JVM之垃圾回收(1-概述+演算法)JVM演算法
- Docker的使用筆記Docker筆記
- Docker筆記之DockerfileDocker筆記
- Docker 學習筆記Docker筆記
- Docker 入門筆記Docker筆記
- docker簡單筆記Docker筆記
- Docker學習筆記Docker筆記
- Docker筆記(一):什麼是DockerDocker筆記
- Docker筆記(四):Docker映象管理Docker筆記
- Docker筆記之Docker初體驗Docker筆記
- 【JAVA】筆記(12)---集合(1)-概述篇Java筆記
- mongoDB研究筆記:複製集概述MongoDB筆記
- bootstrap學習筆記 外掛概述boot筆記