elasticsearch入門系列">elasticsearch入門系列
737
2022-05-29
文章目錄
一、docker鏡像與容器
二、Docker 核心組成部分
一、docker鏡像與容器
docker鏡像是一個可執行的靜態獨立軟件包,包含打包程序代碼和軟件運行環境等文件。如:代碼、運行時庫、環境變量和配置文件等都包含在其中。容器是鏡像的運行時狀態(鏡像中的軟件、程序運行),占用服務器CPU、內存、磁盤等資源。
如果學過java,用下面的這個類比能夠更形象的理解二者之間的關系:
鏡像可以類比java類的二進制字節碼文件。
容器可以類比由字節碼實例化出來的java對象。
一個字節碼文件(類)可以new出來多個對象,一個鏡像可以快速實例化多個容器服務。
鏡像來源有哪些?
Docker Hub官方鏡像,以及國內阿里云等都有對外開放的docker鏡像倉庫。
使用Dockerfile自己構建鏡像。Dockerfile是代碼文件、環境變量、系統依賴軟件等的構建描述,將鏡像的構建過程固化下來,保證了不重復做環境安裝工作。概念上類似于maven的pom.xml。
企業私有鏡像以及私有鏡像倉庫Docker registry
docker容器的本質是宿主機上的一個進程,這句話怎么理解?
容器的的運行時實質是進程,但它與直接在宿主機里面執行的進程有所不同,容器進程存在屬于自己的獨立的命名空間。因此容器擁有自己的 root 文件系統、自己的網絡配置、自己的進程空間,甚至自己的用戶 ID 空間。
容器內的進程是運行在一個隔離的環境里,使用起來就好像是在一個獨立于宿主的系統下操作一樣。也因為這種隔離的特性,很多人初學 Docker 時常常會混淆容器和虛擬機。
二、Docker 核心組成部分
我們在前文中安裝的Docker CE主要由如下幾部分構成:Docker 客戶端(Docker Client)、Docker 守護進程(Docker daemon)、containerd 以及 runc,它們協調合作共同負責容器的創建和運行以及生命周期的管理。
Docker Client:命令行方式向docker引擎(服務端)發送指令。
REST API:docker 引擎(服務端)通過RESTful API的方式,對外提供操作命令入口。
daemon:docker 守護進程,包含REST AP、身份驗證、基礎配置管理等特性。
containerd:核心功能用于容器生命周期的管理,如:啟動、暫停、刪除等。鏡像管理功能也在containerd中。
runc :runc是一個輕量級的、針對 Libcontainer 進行了包裝的命令行交互工具(Libcontainer 取代了早期 Docker 架構中的 LXC)。LXC 提供了對諸如命名空間(Namespace)和控制組(CGroup)等基礎工具的操作能力。
namespace實現資源隔離,如:獨立的文件系統、網絡空間、用戶空間等。
cgroups實現資源的限制,如每個容器使用多少內存。
Docker 容器 鏡像服務
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。