摘要:的主要目標(biāo)是與彼此協(xié)作并且提供兩者之間無縫對接體驗(yàn)。中通過組件或事件之間的交互產(chǎn)生的中間對象。將被處理并導(dǎo)致應(yīng)用數(shù)據(jù)的改變。例如,有一個(gè)對象與進(jìn)行交互。
介紹
Kitematic是一個(gè) Docker GUI 工具,它可以在 Mac 和Windows上更快速、更簡單的運(yùn)行Docker。Docker官方表示,Kitematic是其生態(tài)系統(tǒng)中成長起來的一個(gè)非常棒的項(xiàng)目。
Kitematic簡化了安裝本地Docker環(huán)境并提供一個(gè)GUI來pull、 build 和run容器。如果你還沒有試過,你可以下載Kitematic 試用下。
Kitematic的主要目標(biāo)是與DockerCLI彼此協(xié)作并且提供兩者之間無縫對接體驗(yàn)。例如,一個(gè)用戶可能運(yùn)行下面的命令在Docker客戶端啟動(dòng)一個(gè)容器:docker run hello-world ,并且在Kitematic觀察結(jié)果,反之亦然。進(jìn)一步說,我們的目標(biāo)是與其他Docker工具一起開箱即用,如Docker Compose。
舉個(gè)例子,如果我們通過命令行刪除一個(gè)容器,Kitematic將立即反映這種變化:
應(yīng)用程序架構(gòu):React 和FluxKitematic完全用JavaScript編寫的。在考慮不同的架構(gòu)設(shè)計(jì)和框架之后,我們最終的架構(gòu)靈感來自Facebook的Flux。Kitematic的總體架構(gòu)如下圖所示:
Stores: 真實(shí)數(shù)據(jù)的來源并且需要邏輯來管理這些數(shù)據(jù)。
Components: 在React中執(zhí)行,負(fù)責(zé)stores中數(shù)據(jù)的呈現(xiàn)和捕捉用戶輸入的數(shù)據(jù)。
Actions: Docker Remote API中通過組件或事件之間的交互產(chǎn)生的中間對象。Actions將被stores處理并導(dǎo)致應(yīng)用數(shù)據(jù)的改變。
Utils: 這不是一個(gè)標(biāo)準(zhǔn)Flux實(shí)現(xiàn)的一部分,但是通過actions與外部服務(wù)進(jìn)行交互。例如,Kitematic 有一個(gè)DockerUtil對象與Docker Engine Remote API進(jìn)行交互。
當(dāng)一個(gè)容器通過客戶端被刪除,將會(huì)發(fā)生以下情況:Docker Engine產(chǎn)生destroy event
這個(gè)事件反過來觸發(fā)一個(gè)容器destroyed action
Subscribing to container actions,ContainerStore,負(fù)責(zé)存儲(chǔ)容器數(shù)據(jù),從它內(nèi)部的容器列表更新刪除破壞掉的容器數(shù)據(jù)。
UI組件負(fù)責(zé)列表容器,ContainerList組件相應(yīng)的重新呈現(xiàn)。
The Code:Propagating Docker Engine Events to Kitematic GUI讓我們深入不同部分的代碼庫來了解一下是怎么實(shí)現(xiàn)的,下文我們做了簡化。
1.從Docker Remote API Events觸發(fā)操作使用dockerode庫,監(jiān)聽Docker Remote API很簡單。在這種情況下,如果一個(gè)事件接收到狀態(tài)遭到破壞,就會(huì)創(chuàng)建一個(gè)動(dòng)作通知相關(guān)stores更新其內(nèi)部數(shù)據(jù):
2.更新Container StoreContainerStore對象執(zhí)行一個(gè)處理任何破壞掉的容器操作,更新其內(nèi)部數(shù)據(jù),通知所有監(jiān)聽組件重新呈現(xiàn)。
3.在ContainerList React Component觸發(fā)更新Kitematic中的高級Containers React組件監(jiān)聽ContainerStore發(fā)出的更新,在這種情況下,當(dāng)ContainerStore發(fā)出更新,負(fù)責(zé)呈現(xiàn)容器的簡單列表的ContainerList也隨著更新的容器數(shù)據(jù)呈現(xiàn)。
ContainerList.react.js
總結(jié)回顧一下,這篇文章解釋了Kitematic 如何通過DockerCLI或任何集成Docker Engine.的工具,利用Docker Remote API、 React 和Flux 來實(shí)現(xiàn)實(shí)時(shí)更新。記得現(xiàn)在就下載Kitematic試用并反饋給我們。(本文編譯自Docker博客)
時(shí)速云 輕量級容器云平臺(tái)文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/26456.html
摘要:自從微軟和宣布合作以來,微軟一直在容器上面的戰(zhàn)略可謂穩(wěn)扎穩(wěn)打。最近,微軟加入,并作為創(chuàng)始成員承諾支持常見容器的格式和運(yùn)行。這種定位導(dǎo)致大家對于微軟容器戰(zhàn)略的認(rèn)識(shí)模糊。微軟的容器策略并不是可移植性說的直白一點(diǎn)。 自從微軟和Docker宣布合作以來,微軟Redmond一直在容器上面的戰(zhàn)略可謂穩(wěn)扎穩(wěn)打。最近,微軟加入Open Container Initiative (OCI),并作為創(chuàng)始成...
摘要:源碼走讀在運(yùn)行時(shí)發(fā)生了什么標(biāo)簽空格分隔原文作者是,原文地址是在這篇博文中我將回答一下問題運(yùn)行一個(gè)期間內(nèi)部發(fā)生了什么開始首先從并檢查代碼。這個(gè)發(fā)生在和行之間。如果一個(gè)錯(cuò)誤發(fā)生,它會(huì)被記錄,然后程序退出。這些覆蓋了在客戶端里面發(fā)生了什么。 Docker 源碼走讀 - 在運(yùn)行 Docker run 時(shí)發(fā)生了什么? 標(biāo)簽(空格分隔): Docker 原文作者是 Frank Scho...
摘要:棋類游戲和電子游戲通常都會(huì)有定義明確的回饋函數(shù),這使得用增強(qiáng)學(xué)習(xí)算法來直接進(jìn)行優(yōu)化成為可能。增強(qiáng)學(xué)習(xí)算法或智能體的目標(biāo)是通過與任務(wù)或者環(huán)境進(jìn)行互動(dòng),學(xué)會(huì)執(zhí)行復(fù)雜的新穎的任務(wù)。使得增強(qiáng)學(xué)習(xí)算法和環(huán)境的開放與測試變得更加簡便了。 機(jī)器學(xué)習(xí)的進(jìn)步由多個(gè)領(lǐng)域的創(chuàng)新和創(chuàng)意驅(qū)動(dòng)。從人類學(xué)習(xí)事物的方式獲得啟發(fā),增強(qiáng)學(xué)習(xí)(RL)指的是系列算法,能夠通過試錯(cuò)的回饋來進(jìn)行提升,可以進(jìn)一步優(yōu)化未來的表現(xiàn)。?棋類游...
摘要:采用混合云存儲(chǔ),災(zāi)難恢復(fù)能夠達(dá)到秒級還是分鐘級關(guān)鍵還要看帶寬。經(jīng)測試,采用混合云進(jìn)行分級存儲(chǔ),在非實(shí)時(shí)高可用場景下,存儲(chǔ)成本可降低在使用歸檔存儲(chǔ)的情況下,成本僅為獨(dú)立建設(shè)災(zāi)備集群的成本的五分之一。人人都說,混合云/多云是未來。IDC曾預(yù)測,2018年,85%以上的大型企業(yè)都將采用混合云。RightScale發(fā)布的2018年云計(jì)算調(diào)查報(bào)告也顯示出同樣的趨勢,81%的企業(yè)都有一個(gè)多云策略,其中又...
摘要:在全面兼容Apache Kafka生態(tài)的基礎(chǔ)上,消息隊(duì)列Kafka徹底解決ApacheKafka穩(wěn)定性不足的長期痛點(diǎn),并且支持消息無縫遷移到云上。 近日,阿里云宣布正式推出消息隊(duì)列Kafka,全面融合開源生態(tài)。在全面兼容Apache Kafka生態(tài)的基礎(chǔ)上,消息隊(duì)列Kafka還具備了超易用,超高可用可靠性,擴(kuò)縮容不操心,全方位安全診斷,數(shù)據(jù)安全有保障的特點(diǎn)??捎眯羞_(dá)99.9%,數(shù)據(jù)可靠行99...
閱讀 3870·2021-09-10 11:22
閱讀 2325·2021-09-03 10:30
閱讀 3660·2019-08-30 15:55
閱讀 1873·2019-08-30 15:44
閱讀 840·2019-08-30 15:44
閱讀 582·2019-08-30 14:04
閱讀 3042·2019-08-29 17:18
閱讀 1262·2019-08-29 15:04