我們一起聊聊 Docker 容器技術(shù)
圖片
圖片
圖片
圖片
圖片
圖片
圖片
圖片
- Docker 客戶端(Docker Client):這是用戶與 Docker 進(jìn)行交互的接口。用戶通過(guò)命令行界面(CLI)或者圖形用戶界面(GUI)向 Docker 守護(hù)進(jìn)程發(fā)送指令,例如創(chuàng)建、啟動(dòng)、停止容器等操作。
例如,用戶可以在終端中輸入 docker run ubuntu:latest 命令來(lái)啟動(dòng)一個(gè)基于 ubuntu:latest 鏡像的容器。
- Docker 守護(hù)進(jìn)程(Docker Daemon):這是 Docker 架構(gòu)的核心組件,負(fù)責(zé)接收并處理來(lái)自客戶端的請(qǐng)求,管理 Docker 對(duì)象,如鏡像、容器、網(wǎng)絡(luò)和數(shù)據(jù)卷等。
它負(fù)責(zé)從 Docker Hub 拉取鏡像,創(chuàng)建和運(yùn)行容器,并監(jiān)控容器的狀態(tài)。
- Docker 鏡像(Docker Image):鏡像是一個(gè)只讀的模板,包含了創(chuàng)建 Docker 容器所需的文件系統(tǒng)和配置信息。
比如,一個(gè) ubuntu 鏡像包含了 Ubuntu 操作系統(tǒng)的基本文件和配置。
- Docker 容器(Docker Container):容器是基于鏡像創(chuàng)建的可運(yùn)行實(shí)例,它具有獨(dú)立的文件系統(tǒng)、網(wǎng)絡(luò)和進(jìn)程空間。
可以將多個(gè)容器基于同一個(gè)鏡像創(chuàng)建,每個(gè)容器都是相互隔離且獨(dú)立運(yùn)行的。
- Docker 倉(cāng)庫(kù)(Docker Registry):用于存儲(chǔ)和分發(fā) Docker 鏡像的地方,分為公共倉(cāng)庫(kù)(如 Docker Hub)和私有倉(cāng)庫(kù)。
許多開(kāi)發(fā)者會(huì)將自己創(chuàng)建的鏡像推送到 Docker Hub 上供他人使用。
圖片
圖片
圖片
K8s容器技術(shù)揭密
圖片
圖片
圖片
圖片
圖片
圖片
圖片
圖片
圖片
圖片
圖片
- Pod 內(nèi)部通信:
在同一個(gè) Pod 中的容器共享同一個(gè)網(wǎng)絡(luò)命名空間,它們可以通過(guò) localhost 互相通信。
例如,一個(gè) Pod 中有兩個(gè)容器,一個(gè)是 Web 服務(wù)器,一個(gè)是后端處理程序,它們可以通過(guò) localhost 進(jìn)行快速和高效的通信。
- Pod 之間通信:
Kubernetes 為每個(gè) Pod 分配一個(gè)唯一的 IP 地址,不同 Pod 之間可以通過(guò)這些 IP 地址進(jìn)行通信。
假設(shè)一個(gè)應(yīng)用由前端 Pod 和后端數(shù)據(jù)庫(kù) Pod 組成,它們能夠通過(guò) Pod 的 IP 地址直接交互數(shù)據(jù)。
- Service 通信:
Service 為一組具有相同功能的 Pod 提供了一個(gè)穩(wěn)定的訪問(wèn)入口和負(fù)載均衡。
比如,有多個(gè)相同的 Web 服務(wù) Pod,Service 會(huì)將請(qǐng)求均勻地分發(fā)到這些 Pod 上。
- Ingress 通信:
Ingress 用于將外部的 HTTP(S) 流量路由到集群內(nèi)的 Service。
當(dāng)外部用戶訪問(wèn)應(yīng)用時(shí),Ingress 會(huì)根據(jù)配置的規(guī)則將請(qǐng)求轉(zhuǎn)發(fā)到對(duì)應(yīng)的 Service。
- NodePort 通信:
通過(guò)在節(jié)點(diǎn)(Node)上暴露一個(gè)特定的端口,從而允許外部訪問(wèn)到集群內(nèi)的 Service。
- ClusterIP 通信:
這是一種僅在集群內(nèi)部可訪問(wèn)的 Service 類型。
圖片
圖片
圖片