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