摘要:第二具備輕量化特性容器的體積非常小巧。他們大多認(rèn)為自己應(yīng)該將應(yīng)用程序部署至當(dāng)前正在運(yùn)行的容器當(dāng)中。不要?jiǎng)?chuàng)建大型鏡像體積過大的鏡像會(huì)加大其發(fā)布難度??傮w來講,在向生產(chǎn)環(huán)境中部署容器時(shí),必須避免使用最新標(biāo)簽。
當(dāng)下最火爆的Docker,是一個(gè)開源的應(yīng)用容器引擎。大家已經(jīng)開始認(rèn)同并接受容器技術(shù),并意識(shí)到它能夠解決多種現(xiàn)實(shí)問題并具備一系列無可比擬的優(yōu)勢(shì)。今天小數(shù)就和大家聊一聊容器技術(shù)的優(yōu)勢(shì)和誤區(qū),幫助大家更好地理解和使用Docker。
Docker容器的三大優(yōu)勢(shì):
第一:具備恒定特性–操作系統(tǒng)、庫版本、配置、文件夾以及應(yīng)用程序全部涵蓋在內(nèi)。大家可以將質(zhì)量檢查流程中使用的測(cè)試鏡像原封不動(dòng)地引入生產(chǎn)環(huán)境當(dāng)中。
第二:具備輕量化特性–容器的體積非常小巧。相較于動(dòng)輒成百上千MB的操作系統(tǒng),它只需要配備主進(jìn)程所必需的內(nèi)存外加數(shù)十MB額外容量。
第三:速度驚人–大家可以享受等同于單一進(jìn)程的容器啟動(dòng)速度。相較于長(zhǎng)達(dá)數(shù)分鐘的傳統(tǒng)負(fù)載啟動(dòng)時(shí)長(zhǎng),現(xiàn)在我們完全能夠在幾秒鐘內(nèi)啟動(dòng)一套新容器。
不過很多用戶仍然在以對(duì)待典型虛擬機(jī)的方式審視容器,在這種情況下他們往往沒辦法發(fā)揮容器技術(shù)所蘊(yùn)含的各類優(yōu)勢(shì)。因此我們需要再次強(qiáng)調(diào)一項(xiàng)基本原則:容器具備一次性特征。
容器座右銘:
“容器屬于臨時(shí)性(一次性)系統(tǒng)?!?/p>
這一特性的存在要求用戶轉(zhuǎn)變既有思路,選擇更為合適的方針處理并管理容器。接下來,我會(huì)通過十種常見誤區(qū)幫助大家了解發(fā)揮容器優(yōu)勢(shì)的合理途徑:
1)不要將數(shù)據(jù)存放在容器內(nèi)–容器系統(tǒng)可隨時(shí)進(jìn)行停止、銷毀或者替換。運(yùn)行在容器環(huán)境下的應(yīng)用程序1.0版本應(yīng)該可以輕松更換為1.1版本,且不會(huì)影響或者破壞相關(guān)數(shù)據(jù)??紤]到這一點(diǎn),如果大家需要保存數(shù)據(jù),請(qǐng)將其存儲(chǔ)在存儲(chǔ)卷當(dāng)中;不過需要注意的是,如果有兩套容器同時(shí)指向同一存儲(chǔ)卷,則可能引發(fā)故障。大家必須確保自己的應(yīng)用程序使用面向共享式數(shù)據(jù)存儲(chǔ)機(jī)制的寫入設(shè)計(jì)方案。
2)不要以拆分方式進(jìn)行應(yīng)用程序發(fā)布–有些朋友仍然帶著虛擬機(jī)思路審視容器。他們大多認(rèn)為自己應(yīng)該將應(yīng)用程序部署至當(dāng)前正在運(yùn)行的容器當(dāng)中。然而,這種作法只適用于開發(fā)階段,從而實(shí)現(xiàn)應(yīng)用開發(fā)所必需的持續(xù)部署與調(diào)試;一旦轉(zhuǎn)移至質(zhì)量檢查與生產(chǎn)環(huán)境下的持續(xù)部署流程,應(yīng)用程序則必須作為鏡像本身的組成部分。請(qǐng)記?。喝萜骶哂泻愣ㄌ匦?。
3)不要?jiǎng)?chuàng)建大型鏡像–體積過大的鏡像會(huì)加大其發(fā)布難度。大家需要確保在鏡像中只保留運(yùn)行應(yīng)用程序/進(jìn)程所必需的文件與庫。不要安裝任何非必要軟件包或者在構(gòu)建過程中運(yùn)行“更新”(yum update)。
4)不要使用單層鏡像–為了更為合理地使用分層文件系統(tǒng),請(qǐng)大家務(wù)必為操作系統(tǒng)、安裝軟件、配置以及應(yīng)用程序分別創(chuàng)建獨(dú)立層。這不僅能夠簡(jiǎn)化鏡像的創(chuàng)建與管理工作,亦能降低分發(fā)難度。
5) 不要利用運(yùn)行中的容器創(chuàng)建鏡像–換言之,不要使用“docker commit”創(chuàng)建鏡像。以這種方式創(chuàng)建的鏡像不具備再生產(chǎn)能力且無法實(shí)現(xiàn)版本控制性,因此絕對(duì)不值得提倡。相反,使用Dockerfile或者任何S2I(即源到鏡像)方法能夠有效確保整體再生產(chǎn)能力。
6)不要只使用“最新”標(biāo)簽–最新標(biāo)簽類似于Maven用戶所熟悉的“SNAPSHOT”。各標(biāo)簽只適合在分層文件系統(tǒng)當(dāng)中使用。如果大家在鏡像構(gòu)建完成的兩個(gè)月之后,意外發(fā)現(xiàn)自己的應(yīng)用程序由于頂層版本替換而造成向下兼容性缺失或者build緩存“最新”版本無法運(yùn)行,那么無疑會(huì)造成巨大的麻煩??傮w來講,在向生產(chǎn)環(huán)境中部署容器時(shí),必須避免使用最新標(biāo)簽。
7)不要在單一容器內(nèi)運(yùn)行多個(gè)進(jìn)程–容器系統(tǒng)非常適合運(yùn)行單一進(jìn)程(例如http域名、應(yīng)用程序服務(wù)器以及數(shù)據(jù)庫等等),但如果大家在容器內(nèi)使用多個(gè)進(jìn)程,則可能很難對(duì)其分別進(jìn)行管理、獲取日志記錄以及更新。
8)不要在鏡像內(nèi)保存憑證,建議使用環(huán)境變量–大家絕對(duì)不要以硬編碼形式在鏡像中保存任何用戶名/密碼。相反,我們應(yīng)當(dāng)利用環(huán)境變量從容器之外獲取此類信息。在這方面,最完美的示例就是postgres鏡像。
9)以非root用戶運(yùn)行進(jìn)程– “默認(rèn)情況下,Docker容器以root方式運(yùn)行。隨著Docker的不斷發(fā)展成熟,更多更為安全的默認(rèn)選項(xiàng)亦陸續(xù)出現(xiàn)。就目前而言,使用root權(quán)限仍有可能造成安全隱患且缺乏對(duì)全部環(huán)境的良好適應(yīng)效果。大家的鏡像應(yīng)當(dāng)使用USER指令將容器指定為非root用戶角色”。(來自Docker鏡像創(chuàng)建者指南)
10)不要依賴于IP地址–每套容器都擁有自己的內(nèi)部IP地址,而容器的每次啟動(dòng)與停止都有可能導(dǎo)致IP地址發(fā)生改變。如果應(yīng)用程序或者微服務(wù)需要與其它容器通信,那么請(qǐng)使用能夠?qū)⑾嚓P(guān)信息由此容器傳遞至彼容器的名稱與/或環(huán)境變量。
Docker技術(shù)作為當(dāng)前最火爆的技術(shù),仍在一個(gè)落地和普及的過程中。大家在使用過程中應(yīng)當(dāng)拋開傳統(tǒng)的觀念和想法,避免走入誤區(qū)、繞進(jìn)彎路,在技術(shù)轉(zhuǎn)型的過程中先人一步。
基于領(lǐng)先的 Mesos和Docker技術(shù),數(shù)人云作為一款輕量級(jí)PaaS平臺(tái),向下將底層服務(wù)器資源統(tǒng)一管理成一個(gè)資源池,向上承載用戶的應(yīng)用,幫助用戶在云端快速建立并穩(wěn)定運(yùn)維一個(gè)高性能生產(chǎn)環(huán)境。數(shù)人云歡迎大家前來一同體驗(yàn)容器技術(shù)的美妙。
原文鏈接:
http://developerblog.redhat.com/2016/02/24/10-things-to-avoid-in-docker-containers/
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/26537.html
摘要:朱星星表示面對(duì)破解者的動(dòng)態(tài)調(diào)試,我們可以采取對(duì)進(jìn)行加固的方案,防止被動(dòng)態(tài)調(diào)試。事實(shí)上,不管有無其他問題,檢測(cè)方如果檢測(cè)到里有明文存儲(chǔ),則一定會(huì)被打回來,朱星星在解釋該問題重要性時(shí)告誡開發(fā)者,在開發(fā)階段一定要注意文件是否存在明文存儲(chǔ)的問題。 歡迎訪問網(wǎng)易云社區(qū),了解更多網(wǎng)易技術(shù)產(chǎn)品運(yùn)營經(jīng)驗(yàn)。 因?yàn)楣ば挪繉?duì)移動(dòng)App應(yīng)用安全過檢要求日益增多,不加固大都達(dá)不到工信部的要求,同時(shí)開發(fā)者加固Ap...
摘要:自從微軟和宣布合作以來,微軟一直在容器上面的戰(zhàn)略可謂穩(wěn)扎穩(wěn)打。最近,微軟加入,并作為創(chuàng)始成員承諾支持常見容器的格式和運(yùn)行。這種定位導(dǎo)致大家對(duì)于微軟容器戰(zhàn)略的認(rèn)識(shí)模糊。微軟的容器策略并不是可移植性說的直白一點(diǎn)。 自從微軟和Docker宣布合作以來,微軟Redmond一直在容器上面的戰(zhàn)略可謂穩(wěn)扎穩(wěn)打。最近,微軟加入Open Container Initiative (OCI),并作為創(chuàng)始成...
摘要:今天整理了一下近大半年以來的一些文章,和我的預(yù)期一樣,很多文章我都忘記自己曾經(jīng)寫過了,這個(gè)記錄的過程讓我也有了新的理解。希望大家,收藏,點(diǎn)贊,加轉(zhuǎn)發(fā)。 今天整理了一下近大半年以來的一些文章,和我的預(yù)期一樣,很多文章我都忘記自己曾經(jīng)寫過了,這個(gè)記錄的過程讓我也有了新的理解。希望大家,收藏,點(diǎn)贊,加轉(zhuǎn)發(fā)。 面試必備 面試必備:深入Spring MVC DispatchServlet 源碼...
摘要:今天整理了一下近大半年以來的一些文章,和我的預(yù)期一樣,很多文章我都忘記自己曾經(jīng)寫過了,這個(gè)記錄的過程讓我也有了新的理解。希望大家,收藏,點(diǎn)贊,加轉(zhuǎn)發(fā)。 今天整理了一下近大半年以來的一些文章,和我的預(yù)期一樣,很多文章我都忘記自己曾經(jīng)寫過了,這個(gè)記錄的過程讓我也有了新的理解。希望大家,收藏,點(diǎn)贊,加轉(zhuǎn)發(fā)。 面試必備 面試必備:深入Spring MVC DispatchServlet 源碼...
摘要:鑒于這一特征,用戶必須轉(zhuǎn)變他們使用以及管理容器時(shí)的心態(tài)。不要將應(yīng)用分開發(fā)布有些人會(huì)將容器視為虛擬機(jī),他們中的大部分人認(rèn)為,應(yīng)該在現(xiàn)有的運(yùn)行容器中部署應(yīng)用。不要以用戶運(yùn)行進(jìn)程默認(rèn)情況下,容器以權(quán)限運(yùn)行。 【編者按】本文作者為 Rafael Benevides,主要介紹使用 Docker 容器時(shí)應(yīng)該注意的十個(gè)陷阱。文章系國內(nèi) ITOM 管理平臺(tái) OneAPM 編譯呈現(xiàn),以下為正文。 sho...
閱讀 2306·2021-11-23 09:51
閱讀 3781·2021-10-20 13:49
閱讀 1777·2021-09-06 15:13
閱讀 1882·2021-09-06 15:02
閱讀 3354·2021-09-02 15:11
閱讀 962·2019-08-29 15:37
閱讀 1801·2019-08-29 13:24
閱讀 2323·2019-08-29 11:28