自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

容器技術(shù)反例:哪些不適合利用Docker實現(xiàn)?

譯文
存儲
容器適合處理無狀態(tài)且僅需要短期運(yùn)行的應(yīng)用。這意味著我們不應(yīng)將數(shù)據(jù)或者日志存儲在容器內(nèi)——否則其會在容器終止時一并消失。相反,利用分卷映射將其持久存儲于容器之外。ELK堆棧可用于存儲及處理日志。

  【51CTO.com快譯】 此篇文章,將為大家詳細(xì)介紹那些不適合利用Docker實現(xiàn)的技術(shù)。

  一)容器中的數(shù)據(jù)或者日志

  容器適合處理無狀態(tài)且僅需要短期運(yùn)行的應(yīng)用。這意味著我們不應(yīng)將數(shù)據(jù)或者日志存儲在容器內(nèi)——否則其會在容器終止時一并消失。相反,利用分卷映射將其持久存儲于容器之外。ELK堆??捎糜诖鎯疤幚砣罩?。如果所管理分卷曾在測試流程中使用,那么請在dockerrm命令中添加-v將其移除。

  二)容器IP地址

  每套容器都擁有自己的IP地址。多套容器彼此通信以創(chuàng)建同一應(yīng)用,例如部署在應(yīng)用服務(wù)器上的應(yīng)用即需要與數(shù)據(jù)庫對話。在運(yùn)行過程中,會不斷有舊容器關(guān)閉,新容器開啟。依靠容器IP地址意味著我們需要不斷更新應(yīng)用配置方能保持這種通信能力。相反,我們應(yīng)當(dāng)為其創(chuàng)建專門的服務(wù),用于容納動態(tài)變化的容器引用邏輯名稱,并借此實現(xiàn)基本的負(fù)載均衡功能。

  三)容器中運(yùn)行單一進(jìn)程

  每個Dockerfile都會使用一個CMD與ENTRYPOINT。通常來講,CMD會利用腳本以執(zhí)行部分鏡像配置,而后啟動該容器。不要嘗試在該腳本中使用多個進(jìn)程。大家應(yīng)當(dāng)在創(chuàng)建Docker鏡像時遵循分離原則的方針,否則會令容器在管理、日志收集以及更新方面遭遇更多難題。大家可以考慮將應(yīng)用拆分成多套容器,并對其進(jìn)行逐一管理。

  四)不要使用docker exec

  docker exec命令會在運(yùn)行中的容器內(nèi)開始一條新命令。其適用于利用docker exec -it {cid} bash實現(xiàn)shell附加。然而除此之外,容器本身應(yīng)該已經(jīng)運(yùn)行有該進(jìn)程。

  五)保持鏡像精簡

  創(chuàng)建一個新目錄,并將Dockerfile及其它相關(guān)文件保存在其中。另外,考慮使用.dockeringore以移除任何日志、源代碼等,而后再進(jìn)行鏡像創(chuàng)建。確保移除一切已經(jīng)被解壓的下載軟件包。

  六)利用運(yùn)行中的容器創(chuàng)建鏡像

  應(yīng)使用docker commit命令創(chuàng)建新鏡像。這種方式適用于容器已經(jīng)發(fā)生改變的情況。不過由此創(chuàng)建的鏡像不可重現(xiàn)。相反,我們應(yīng)在Dockerfile中進(jìn)行修改,終止現(xiàn)有容器,并利用更新后的鏡像啟動新容器。

  七)Docker鏡像中的安全憑證

  不要將安全憑證存儲在Dockerfile當(dāng)中。其將以明文形式存在并被檢入存儲庫內(nèi),這將引發(fā)潛在的安全威脅。使用-e將密碼指定為環(huán)境變更。而后,可利用--env-file讀取文件中的環(huán)境變量。另一種方案是利用CMD或者ENTRYPOINT指定一套腳本。該腳本負(fù)責(zé)將憑證由第三方處提取出來并用于配置應(yīng)用。

  八)latest標(biāo)簽

  很多朋友可能習(xí)慣利用couchbase啟動鏡像。如果未指定標(biāo)簽,那么容器會默認(rèn)使用couchbase:latest鏡像。此鏡像可能并非最新,而是引用某個陳舊版本。需要強(qiáng)調(diào)的是,將應(yīng)用引入生產(chǎn)流程要求配合一套采用特定鏡像版本的完全受控環(huán)境。確保始終使用正確的標(biāo)簽以運(yùn)行容器——例如使用couchbase:enterprise-4.5.1而非couchbase。

  九)鏡像不匹配

  不要在開發(fā)、測試、分段以及生產(chǎn)環(huán)境內(nèi)使用不同的圖像或者標(biāo)簽。作為“選定來源”的鏡像應(yīng)僅創(chuàng)建一次,并被推送至存儲庫內(nèi)。該鏡像應(yīng)被用于各類不同環(huán)境。在某些情況下,大家可以考慮在WAR文件上運(yùn)行單元測試,而后再創(chuàng)建鏡像。不過請注意,任何系統(tǒng)集成測試都應(yīng)當(dāng)在生產(chǎn)環(huán)境實際使用的鏡像中完成。

  十)發(fā)布端口

  不要利用-P以發(fā)布全部公開端口,因為如此一來大家將能夠運(yùn)行多套容器并發(fā)布其公開端口。這樣做亦意味著全部端口都將公開發(fā)布。相反,請使用-p以發(fā)布特定端口。

  原文標(biāo)題:Docker Container Anti-Patterns,原文作者:Arun Gupta

【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】

責(zé)任編輯:張誠 來源: 51CTO
相關(guān)推薦

2015-03-12 13:39:48

Hadoop場景大數(shù)據(jù)

2013-08-16 10:00:45

VMwareOpenStack

2021-01-31 18:52:36

Rust開發(fā)Web API

2018-06-08 08:59:42

數(shù)據(jù)庫Docker容器化

2009-01-15 18:30:11

服務(wù)器虛擬化VMware

2018-07-29 07:58:34

物聯(lián)網(wǎng)IOT物聯(lián)網(wǎng)產(chǎn)品

2019-09-15 17:43:14

JSON HTTP物聯(lián)網(wǎng)技術(shù)

2010-07-20 09:56:53

VDI部署

2022-07-12 14:04:19

Kafka

2012-03-13 15:28:47

Kindle Fire傲游

2013-08-13 14:33:17

程序員

2013-12-09 10:16:03

Android firAndroid開發(fā)移動創(chuàng)業(yè)

2022-11-07 10:20:20

useEffects

2024-10-06 13:00:05

2009-01-08 17:15:29

服務(wù)器虛擬化高性能計算

2019-08-26 00:37:19

WiFi 65GWi-Fi

2015-07-23 11:26:35

虛擬化負(fù)載類型

2012-06-25 14:09:58

2009-10-14 08:30:22

Windows 7UAC企業(yè)部署

2009-07-16 10:53:11

iBATIS 使用
點(diǎn)贊
收藏

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