摘要:總架構(gòu)圖架構(gòu)系統(tǒng)使用了的架構(gòu),通過請(qǐng)求來管理的鏡像和容器等。架構(gòu)示意圖專門服務(wù)于,其作用是接受并調(diào)度分發(fā)發(fā)送的請(qǐng)求。
架構(gòu)是一個(gè)很大的概念,也絕非一兩篇文章能寫清楚的,這里記錄自己認(rèn)為重要的部分和相關(guān)的學(xué)習(xí)資料。
Docker 總架構(gòu)圖
C/S 架構(gòu)docker 系統(tǒng)使用了 C/S 的架構(gòu),docker client 通過 REST API 請(qǐng)求 docker daemon 來管理 docker 的鏡像和容器等。
Server 端駐守在后臺(tái),稱之為 docker daemon
Client 端是一個(gè) CLI 程序,可以在命令行中通過 docker 這個(gè)二進(jìn)制文件進(jìn)行交互
Docker clientDocker client 是給用戶和 Docker daemon 建立通信的客戶端,安裝了 docker 之后,二進(jìn)制文件 docker 就是 Docker client,與 Docker daemon 交互,實(shí)現(xiàn)對(duì) Docker image 和 container 的管理請(qǐng)求。
Docker client 與 docker daemon 建立請(qǐng)求的方式有三種,分別是:
tcp://host:port
unix://path/to/socket
fd://socketfd
Docker daemonDocker daemon 是一個(gè)常駐后臺(tái)的系統(tǒng)進(jìn)程,所謂“運(yùn)行 docker”,指的就是運(yùn)行 Docker daemon,其作用主要有以下兩點(diǎn):
接受并處理 Docker Client 發(fā)送的請(qǐng)求
管理所有的 Docker containers 和 Docker images
Docker daemon 的架構(gòu)大致可以分為三部分:Docker Server、Engine 和 Job。
Docker daemon 架構(gòu)示意圖
Docker Server 專門服務(wù)于 Docker Client,其作用是接受并調(diào)度分發(fā) Docker client 發(fā)送的請(qǐng)求。
Engine 是 Docker 中的運(yùn)行引擎, 是其運(yùn)行的核心模塊。Engine 中存儲(chǔ)著大量的容器信息,也管理著 Docker 大部分 Job 的執(zhí)行。
Job 是 Docker 中最基本的工作執(zhí)行單元,Docker daemon 可以完成的每一項(xiàng)工作都能呈現(xiàn)為一個(gè) Job。
Linux 下,使用 dockerd 命令,便可以 daemon 模式操作 docker。
Docker Remote Apidocker daemon 會(huì)監(jiān)聽 unix:///var/run/docker.sock 的 socket,提供一個(gè) RESTful 的 Remote API,可供客戶端訪問,例如:
curl --unix-socket /var/run/docker.sock http:/containers/json?all=1
便可得到所有的容器列表,相當(dāng)于在 terminal 中執(zhí)行了 docker ps -a 命令。
注:如果需要自己實(shí)現(xiàn) docker client 的,可訪問 Docker Remote API 參考相關(guān)文檔。
docker daemon 監(jiān)聽來自 remote api 的請(qǐng)求的方式有三種,unix、tcp 和 fd。
默認(rèn)情況下,監(jiān)聽的是 unix:///var/run/docker.sock,在 linux 下,想要改變其監(jiān)聽方式,可以使用 dockerd 命令:
dockerd -H 0.0.0.0:5555
便可將 docker daemon 的監(jiān)聽方式變?yōu)?tcp://host:port 的方式,然后客戶端可以
docker -H :5555 pull ubuntu
來訪問 daemon。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/26694.html
摘要:作為面試官,我是如何甄別應(yīng)聘者的包裝程度語言和等其他語言的對(duì)比分析和主從復(fù)制的原理詳解和持久化的原理是什么面試中經(jīng)常被問到的持久化與恢復(fù)實(shí)現(xiàn)故障恢復(fù)自動(dòng)化詳解哨兵技術(shù)查漏補(bǔ)缺最易錯(cuò)過的技術(shù)要點(diǎn)大掃盲意外宕機(jī)不難解決,但你真的懂?dāng)?shù)據(jù)恢復(fù)嗎每秒 作為面試官,我是如何甄別應(yīng)聘者的包裝程度Go語言和Java、python等其他語言的對(duì)比分析 Redis和MySQL Redis:主從復(fù)制的原理詳...
摘要:作為面試官,我是如何甄別應(yīng)聘者的包裝程度語言和等其他語言的對(duì)比分析和主從復(fù)制的原理詳解和持久化的原理是什么面試中經(jīng)常被問到的持久化與恢復(fù)實(shí)現(xiàn)故障恢復(fù)自動(dòng)化詳解哨兵技術(shù)查漏補(bǔ)缺最易錯(cuò)過的技術(shù)要點(diǎn)大掃盲意外宕機(jī)不難解決,但你真的懂?dāng)?shù)據(jù)恢復(fù)嗎每秒 作為面試官,我是如何甄別應(yīng)聘者的包裝程度Go語言和Java、python等其他語言的對(duì)比分析 Redis和MySQL Redis:主從復(fù)制的原理詳...
摘要:此刻的后手指依舊飛速地敲打鍵盤,絲毫沒有要停不下來意思。閱讀本期技術(shù)周刊,你不光能弄明白什么是,使用的意義何在,還將被傳授秘籍,以達(dá)的境界。周刊篩選的每篇內(nèi)容,是作者的獨(dú)到見解,踩坑總結(jié)和經(jīng)驗(yàn)分享。 showImg(https://segmentfault.com/img/bVC5qJ?w=900&h=385); 啪嗒啪嗒,啪嗒啪嗒,聽到后排動(dòng)感十足的清脆鍵盤響,我就能猜到公司程序員定...
摘要:并不是因?yàn)樗情W亮的新事物或者它是一些虛構(gòu)的最佳實(shí)踐,而是因?yàn)橄駚嗰R遜或者已經(jīng)在這上面投入了年的心血,他們告訴了我們?nèi)绾螛?gòu)建真正有規(guī)模的系統(tǒng)。截止目前,我們已經(jīng)部署了由亞馬遜等提供的重量級(jí)虛擬化服務(wù)器。 周一時(shí)候數(shù)人云與大家分享了一篇關(guān)于Docker的反方言論——《一份Docker的反方辯論——我還是用Heroku好了》,一周之后,同樣的作者,又為Docker正名,寫了一篇正方言論。D...
閱讀 2937·2021-11-23 09:51
閱讀 3109·2021-11-15 11:39
閱讀 2992·2021-11-09 09:47
閱讀 2538·2019-08-30 13:49
閱讀 2122·2019-08-30 13:09
閱讀 3107·2019-08-29 16:10
閱讀 3511·2019-08-26 17:04
閱讀 998·2019-08-26 13:57