Docker容器中應(yīng)避免哪些事

今天就跟大家聊聊有關(guān)Docker容器中應(yīng)避免哪些事,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

網(wǎng)站的建設(shè)成都創(chuàng)新互聯(lián)專注網(wǎng)站定制,經(jīng)驗豐富,不做模板,主營網(wǎng)站定制開發(fā).小程序定制開發(fā),H5頁面制作!給你煥然一新的設(shè)計體驗!已為銅雕雕塑等企業(yè)提供專業(yè)服務(wù)。

毋庸置疑,容器已經(jīng)成為企業(yè)IT基礎(chǔ)設(shè)施中必不可少的部分,它具有許多的優(yōu)點,但容器是一次性的。那么該如何保持容器的良好效益呢?以下將介紹Docker容器中應(yīng)避免的10件事。

毋庸置疑,容器已經(jīng)成為企業(yè)IT基礎(chǔ)設(shè)施中必不可少的部分,它具有許多的優(yōu)點,比如:

  • 容器是不可變的——操作系統(tǒng),庫版本,配置,文件夾和應(yīng)用程序都包裝在容器內(nèi)。你保證在質(zhì)量檢查中測試過的同一鏡像將以相同的行為到達生產(chǎn)環(huán)境。

  • 容器很輕——容器的內(nèi)存占用量很小。容器將只為主要進程分配內(nèi)存,而不是數(shù)百或數(shù)千MB。

  • 容器非??臁梢韵駟拥湫? Linux進程一樣快地啟動容器。你可以在幾秒鐘內(nèi)啟動一個新容器,而不是幾分鐘。

  • 但是,許多用戶仍然像對待典型虛擬機一樣對待容器,而忘記了容器具有重要的特征:即容器是一次性的。

    這種特征迫使用戶改變他們對如何處理和管理容器的看法。那么該如何保持容器的最佳效益呢?以下將介紹Docker容器中應(yīng)避免的10件事。

    1. 不要將數(shù)據(jù)存儲在容器中,因為你可以停止,銷毀或更換容器。在容器中運行的應(yīng)用程序版本1.0應(yīng)該容易地由版本1.1替換,而不會造成任何影響或數(shù)據(jù)丟失。因此,如果需要存儲數(shù)據(jù),請批量存儲。在這種情況下,還應(yīng)該注意兩個容器是否在同一卷上寫入數(shù)據(jù),因為這可能會導(dǎo)致?lián)p壞。確保你的應(yīng)用程序是為了寫入共享數(shù)據(jù)存儲。

    2. 不要將應(yīng)用程序分為兩部分進行交付。有些人看到像虛擬機這樣的容器,大多數(shù)人傾向于認(rèn)為他們應(yīng)該將應(yīng)用程序部署到現(xiàn)有的運行容器中。在開發(fā)階段,你需要不斷進行部署和調(diào)試,這是正確的。但對于一個連續(xù)傳遞(CD)管道QA和Production,你的應(yīng)用程序應(yīng)該是鏡像的一部分。

    3. 不要創(chuàng)建大鏡像,因為大鏡像將很難分發(fā)。確保僅具有運行應(yīng)用程序/進程所需的文件和庫。不要安裝不必要的軟件包或運行將許多文件下載到新鏡像層的“更新” 。

    4. 不要使用單層鏡像,為了有效利用分層文件系統(tǒng),請始終為操作系統(tǒng)創(chuàng)建自己的基礎(chǔ)鏡像層,為用戶名定義創(chuàng)建另一層,為運行時安裝創(chuàng)建另一層,為配置創(chuàng)建另一層,最后是應(yīng)用程序的另一層。重新創(chuàng)建,管理和分發(fā)鏡像將更加容易。

    5. 不要從正在運行的容器中創(chuàng)建鏡像。換句話說,不要使用“ docker commit”來創(chuàng)建鏡像。這種創(chuàng)建鏡像的方法不可復(fù)制,應(yīng)完全避免。始終使用完全可復(fù)制的Dockerfile或任何其他S2I(從源到鏡像)方法,如果將Dockerfile存儲在源代碼控制存儲庫(git)中,則可以跟蹤對Dockerfile的更改。

    6. 不要只使用“最新”標(biāo)簽,對于Maven用戶,最新標(biāo)簽就像“ SNAPSHOT”一樣。由于容器的分層文件系統(tǒng)性質(zhì),因此鼓勵使用標(biāo)簽。幾個月后生成鏡像并發(fā)現(xiàn)你的應(yīng)用程序無法運行是因為父層(Dockerfile中的FROM)被不兼容向后的新版本或錯誤的新版本所取代,你不會感到驚訝從構(gòu)建緩存中檢索了“最新”版本。在生產(chǎn)環(huán)境中部署容器時,也應(yīng)避免使用“最新”標(biāo)簽,因為你無法跟蹤正在運行哪個版本的鏡像。

    7. 不要在單個容器中運行多個進程。容器非常適合運行單個進程(http守護程序,應(yīng)用程序服務(wù)器,數(shù)據(jù)庫),但是如果有多個進程,則管理起來可能會遇到更多麻煩,檢索日志,并分別更新流程。

    8. 不要將憑據(jù)存儲在鏡像中。使用環(huán)境變量,你不想對鏡像中的任何用戶名/密碼進行硬編碼。使用環(huán)境變量從容器外部檢索該信息。這個原理的一個很好的例子是Postgres鏡像。

    9. 不要以root用戶身份運行進程?!澳J(rèn)情況下,docker容器以root用戶身份運行。隨著docker的成熟,可能會提供更多安全的默認(rèn)選項。目前,要求root用戶對其他人是危險的,可能并非在所有環(huán)境中都可用。你的鏡像應(yīng)使用USER指令為運行容器指定一個非root用戶。

    10. 不要依賴IP地址。每個容器都有自己的內(nèi)部IP地址,如果你啟動和停止容器,它可能會更改。如果應(yīng)用程序或微服務(wù)需要與另一個容器通信,請使用環(huán)境變量將正確的主機名和端口從一個容器傳遞到另一個容器。

看完上述內(nèi)容,你們對Docker容器中應(yīng)避免哪些事有進一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。

當(dāng)前題目:Docker容器中應(yīng)避免哪些事
文章起源:http://muchs.cn/article48/iiohep.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)、外貿(mào)建站定制網(wǎng)站、靜態(tài)網(wǎng)站、微信公眾號、企業(yè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化