成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Docker 用了那么久 了,還不知道它是如何工作的呢?

云計(jì)算 云原生
雖然 Kubernetes 宣布不再直接支持 Docker 了,但是實(shí)際上支持Containerd 就是支持 Docker了,所以默認(rèn) K8s 就是Docker 的編排工具。

Docker 構(gòu)成三大件

Docker的架構(gòu)主要由三個(gè)核心組件構(gòu)成,這是 Docker 三大件。

圖片圖片

Docker Client

這是開(kāi)發(fā)者與Docker交互的部分。無(wú)論你是直接使用 Docker 命令行,還是用 Docker desktop、OrbStack這些 GUI 工具,實(shí)際上都是在使用Docker客戶端。包括使用 Dockerfile 實(shí)際上也是對(duì) Client 命令的包裝。

它負(fù)責(zé)將你輸入的指令傳遞給Docker守護(hù)進(jìn)程(Docker daemon),并顯示出執(zhí)行結(jié)果。

Docker Host

這是Docker運(yùn)行的核心環(huán)境。在Docker主機(jī)上,最關(guān)鍵的部分就是Docker守護(hù)進(jìn)程(Docker daemon)。它負(fù)責(zé)處理 Docker API 的請(qǐng)求,管理各種Docker對(duì)象,包括下面這幾個(gè):

? 鏡像(Images):容器的只讀模板,包含了運(yùn)行應(yīng)用所需的所有依賴和配置。 ? 容器(Containers):鏡像的運(yùn)行實(shí)例,可以被啟動(dòng)、停止、刪除等。 ? 網(wǎng)絡(luò)(Networks):容器間通信的橋梁。 ? 數(shù)據(jù)卷(Volumes):用于數(shù)據(jù)持久化的機(jī)制。

Docker Registry

這是存儲(chǔ)Docker鏡像的地方。Docker Hub是默認(rèn)的公共鏡像倉(cāng)庫(kù),國(guó)內(nèi)也有不少的鏡像站,雖然現(xiàn)在很多不能用了,包括各個(gè)云平臺(tái)一般也有自己的鏡像倉(cāng)庫(kù),很多公司也會(huì)搭建公司內(nèi)部的鏡像倉(cāng)庫(kù)。

我記得15年我做 devops 的時(shí)候,公司就搭了鏡像倉(cāng)庫(kù),因?yàn)楫?dāng)時(shí)公司用的那些鏡像都是高度定制化的,而且配置略復(fù)雜,搭建鏡像倉(cāng)庫(kù)就很合適。

Docker 如何工作的

好了,了解了 Docker 核心組件后,我們?cè)賮?lái)看看Docker是如何工作的吧。

使用者啟動(dòng)一個(gè)容器一定是從一個(gè)鏡像創(chuàng)建出來(lái)的,那就從鏡像的構(gòu)建、鏡像上傳、鏡像拉取直到容器運(yùn)行這幾個(gè)階段來(lái)看一下 Docker 的工作過(guò)程。

構(gòu)建階段

鏡像的發(fā)布者可以通過(guò) docker save 命令將自己的容器打包成一個(gè)鏡像,但是更好的方式是直接編寫(xiě)Dockerfile,定義好各種依賴和參數(shù)。

最后使用docker build命令構(gòu)建鏡像,Docker客戶端將指令發(fā)送給Docker守護(hù)進(jìn)程。守護(hù)進(jìn)程解析Dockerfile文件,根據(jù)其指定的參數(shù)和配置,創(chuàng)建一個(gè)符合要求的鏡像。

分發(fā)階段

使用docker push命令,將構(gòu)建好的鏡像上傳到Docker倉(cāng)庫(kù),不管是公共倉(cāng)庫(kù)還是內(nèi)部倉(cāng)庫(kù)。

之后其他人就可以通過(guò)docker pull命令從倉(cāng)庫(kù)中獲取這個(gè)鏡像。到這一步大部分人應(yīng)該都很熟悉了,鏡像可能沒(méi)打包過(guò),但是用鏡像啟動(dòng)容器應(yīng)該是輕車熟路的。

運(yùn)行階段

使用docker run命令,Docker守護(hù)進(jìn)程會(huì)基于指定的鏡像創(chuàng)建并啟動(dòng)一個(gè)新的容器,如果之前沒(méi)有用 docker pull命令拉取過(guò),那會(huì)自動(dòng)拉取。

容器在一個(gè)隔離的環(huán)境中運(yùn)行,擁有自己的文件系統(tǒng)、網(wǎng)絡(luò)和進(jìn)程空間。

Docker的工作原理保證了所有使用這個(gè)鏡像的環(huán)境都是一致的,這樣就不會(huì)出現(xiàn)開(kāi)發(fā)說(shuō):“在我的機(jī)器上是沒(méi)問(wèn)題的呀?在測(cè)試環(huán)境是可以的呀?”這樣的問(wèn)題了。

通過(guò)將應(yīng)用及其依賴打包到一個(gè)標(biāo)準(zhǔn)化的單元(容器)中,Docker確保了應(yīng)用可以在任何支持Docker的環(huán)境中一致地運(yùn)行。

此外,Docker的輕量級(jí)特性使得它可以在同一臺(tái)主機(jī)上同時(shí)運(yùn)行多個(gè)容器,每個(gè)容器都是相互隔離的。這種隔離性和可移植性使得Docker在微服務(wù)架構(gòu)、持續(xù)集成/持續(xù)部署(CI/CD)流程中發(fā)揮著重要作用。

Docker 、Dockerfile、Docker Swarm、K8S 之間的關(guān)系

Docker 和 Dockerfile

Dockerfile是一個(gè)文本文件,包含了一系列指令和參數(shù)。它用于定義如何構(gòu)建Docker鏡像。

當(dāng)執(zhí)行docker build命令時(shí),Docker會(huì)讀取Dockerfile中的指令,并據(jù)此創(chuàng)建一個(gè)Docker鏡像。

可以將Dockerfile理解為鏡像的"配方",而Docker則是"廚師",按照這個(gè)配方烹飪出最終的"菜肴"(鏡像)。

Dockerfile是輸入,Docker鏡像是輸出,而Docker平臺(tái)則是將輸入轉(zhuǎn)化為輸出的工具。

Docker 和 Docker Swarm

Docker Swarm是Docker原生的集群管理和編排工具。

當(dāng)需要的容器變多了,并且經(jīng)常有需要擴(kuò)展容器的需求時(shí),就需要編排工具了。

Docker Swarm則用于管理多個(gè)Docker主機(jī)組成的集群。可以將多個(gè)運(yùn)行Docker的機(jī)器組合成一個(gè)虛擬的Docker主機(jī),讓運(yùn)維人員輕松地在多臺(tái)機(jī)器上部署和擴(kuò)展Docker容器。

它提供了一些基本的編排功能,如服務(wù)發(fā)現(xiàn)、負(fù)載均衡、滾動(dòng)更新等。

可以將Docker Swarm視為Docker的擴(kuò)展,它使得Docker能夠在集群環(huán)境中更好地工作。

Docker 和 K8s

Kubernetes,通常簡(jiǎn)稱為K8s,是一個(gè)更加強(qiáng)大和復(fù)雜的容器編排平臺(tái)。

Kubernetes最初是為Docker容器設(shè)計(jì)的,但它現(xiàn)在支持多種容器運(yùn)行時(shí),包括Docker和Containerd。

雖然 Kubernetes 宣布不再直接支持 Docker 了,但是實(shí)際上支持Containerd 就是支持 Docker了,所以默認(rèn) K8s 就是Docker 的編排工具。

Kubernetes提供了比Docker Swarm更豐富的功能,包括自動(dòng)擴(kuò)縮容、自我修復(fù)、批處理、水平擴(kuò)展等。

責(zé)任編輯:武曉燕 來(lái)源: 古時(shí)的風(fēng)箏
相關(guān)推薦

2019-12-24 09:49:02

微軟英語(yǔ)瀏覽器

2022-12-09 09:46:55

插件Lombok

2022-08-11 17:14:37

Java

2016-07-22 17:55:07

云計(jì)算

2023-01-02 10:08:42

StampedLocAQS框架

2022-07-17 06:53:24

微服務(wù)架構(gòu)

2023-03-03 07:40:52

MySQLSQL命令

2022-09-19 18:32:22

函數(shù)編程語(yǔ)言

2018-05-20 11:01:47

Siri語(yǔ)音助手手機(jī)

2020-12-14 07:51:16

JS 技巧虛值

2018-09-02 15:43:56

Python代碼編程語(yǔ)言

2010-03-12 09:15:28

Firefox新功能

2022-05-05 12:02:45

SCSS函數(shù)開(kāi)發(fā)

2022-06-27 07:32:00

JavaArrayList語(yǔ)法糖

2021-04-15 12:30:18

ServletSpringMVC 版本

2014-12-01 09:41:25

2021-03-18 14:02:56

iOS蘋(píng)果細(xì)節(jié)

2021-10-22 09:41:26

橋接模式設(shè)計(jì)

2022-10-12 08:22:44

Guava工具Collection

2022-04-15 07:51:12

off-heap堆外內(nèi)存JVM
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 天天爽夜夜骑 | 精品国产青草久久久久福利 | 精品久久影院 | 欧美亚洲在线 | 国产高清毛片 | 九九热精品视频 | 在线免费看91| 一区二区在线视频 | 久久99精品久久久久 | 视频一区中文字幕 | 亚洲精品在线视频 | 色网在线观看 | 久久99蜜桃综合影院免费观看 | 草久久久 | 亚洲夜夜爽 | 男人天堂99 | www.欧美 | 国产一区二区三区在线免费 | 国产精品久久久久久久久免费樱桃 | 黄色毛片黄色毛片 | 91久久久久久久久久久 | 日日人人 | 亚洲成人av | 国产精品一区二区av | 一区二区三区欧美在线 | 国产视频在线观看一区二区三区 | 91在线视频播放 | 能看的av| 成人a视频| 成在线人视频免费视频 | 久久久99精品免费观看 | 在线国产视频 | 国产sm主人调教女m视频 | 韩日一区二区 | 情侣黄网站免费看 | 第四色狠狠 | 精品久久久久久红码专区 | 视频二区| 免费一区二区在线观看 | 欧美在线观看免费观看视频 | 国产男女猛烈无遮掩视频免费网站 |