日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

技术干货 | Docker容器中需要避免的十种常见误区

發布時間:2024/1/17 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 技术干货 | Docker容器中需要避免的十种常见误区 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

當下最火爆的Docker,是一個開源的應用容器引擎。大家已經開始認同并接受容器技術,并意識到它能夠解決多種現實問題并具備一系列無可比擬的優勢。今天小數就和大家聊一聊容器技術的優勢和誤區,幫助大家更好地理解和使用Docker。

Docker容器的三大優勢:

  • 第一:具備恒定特性–操作系統、庫版本、配置、文件夾以及應用程序全部涵蓋在內。大家可以將質量檢查流程中使用的測試鏡像原封不動地引入生產環境當中。

  • 第二:具備輕量化特性–容器的體積非常小巧。相較于動輒成百上千MB的操作系統,它只需要配備主進程所必需的內存外加數十MB額外容量。

  • 第三:速度驚人–大家可以享受等同于單一進程的容器啟動速度。相較于長達數分鐘的傳統負載啟動時長,現在我們完全能夠在幾秒鐘內啟動一套新容器。
    不過很多用戶仍然在以對待典型虛擬機的方式審視容器,在這種情況下他們往往沒辦法發揮容器技術所蘊含的各類優勢。因此我們需要再次強調一項基本原則:容器具備一次性特征。

  • 容器座右銘:
    “容器屬于臨時性(一次性)系統。”


    這一特性的存在要求用戶轉變既有思路,選擇更為合適的方針處理并管理容器。接下來,我會通過十種常見誤區幫助大家了解發揮容器優勢的合理途徑:

    1)不要將數據存放在容器內–容器系統可隨時進行停止、銷毀或者替換。運行在容器環境下的應用程序1.0版本應該可以輕松更換為1.1版本,且不會影響或者破壞相關數據。考慮到這一點,如果大家需要保存數據,請將其存儲在存儲卷當中;不過需要注意的是,如果有兩套容器同時指向同一存儲卷,則可能引發故障。大家必須確保自己的應用程序使用面向共享式數據存儲機制的寫入設計方案。

    2)不要以拆分方式進行應用程序發布–有些朋友仍然帶著虛擬機思路審視容器。他們大多認為自己應該將應用程序部署至當前正在運行的容器當中。然而,這種作法只適用于開發階段,從而實現應用開發所必需的持續部署與調試;一旦轉移至質量檢查與生產環境下的持續部署流程,應用程序則必須作為鏡像本身的組成部分。請記住:容器具有恒定特性。

    3)不要創建大型鏡像–體積過大的鏡像會加大其發布難度。大家需要確保在鏡像中只保留運行應用程序/進程所必需的文件與庫。不要安裝任何非必要軟件包或者在構建過程中運行“更新”(yum update)。

    4)不要使用單層鏡像–為了更為合理地使用分層文件系統,請大家務必為操作系統、安裝軟件、配置以及應用程序分別創建獨立層。這不僅能夠簡化鏡像的創建與管理工作,亦能降低分發難度。

    5) 不要利用運行中的容器創建鏡像–換言之,不要使用“docker commit”創建鏡像。以這種方式創建的鏡像不具備再生產能力且無法實現版本控制性,因此絕對不值得提倡。相反,使用Dockerfile或者任何S2I(即源到鏡像)方法能夠有效確保整體再生產能力。

    6)不要只使用“最新”標簽–最新標簽類似于Maven用戶所熟悉的“SNAPSHOT”。各標簽只適合在分層文件系統當中使用。如果大家在鏡像構建完成的兩個月之后,意外發現自己的應用程序由于頂層版本替換而造成向下兼容性缺失或者build緩存“最新”版本無法運行,那么無疑會造成巨大的麻煩。總體來講,在向生產環境中部署容器時,必須避免使用最新標簽。

    7)不要在單一容器內運行多個進程–容器系統非常適合運行單一進程(例如http域名、應用程序服務器以及數據庫等等),但如果大家在容器內使用多個進程,則可能很難對其分別進行管理、獲取日志記錄以及更新。

    8)不要在鏡像內保存憑證,建議使用環境變量–大家絕對不要以硬編碼形式在鏡像中保存任何用戶名/密碼。相反,我們應當利用環境變量從容器之外獲取此類信息。在這方面,最完美的示例就是postgres鏡像。

    9)以非root用戶運行進程– “默認情況下,Docker容器以root方式運行。隨著Docker的不斷發展成熟,更多更為安全的默認選項亦陸續出現。就目前而言,使用root權限仍有可能造成安全隱患且缺乏對全部環境的良好適應效果。大家的鏡像應當使用USER指令將容器指定為非root用戶角色”。(來自Docker鏡像創建者指南)

    10)不要依賴于IP地址–每套容器都擁有自己的內部IP地址,而容器的每次啟動與停止都有可能導致IP地址發生改變。如果應用程序或者微服務需要與其它容器通信,那么請使用能夠將相關信息由此容器傳遞至彼容器的名稱與/或環境變量。

    Docker技術作為當前最火爆的技術,仍在一個落地和普及的過程中。大家在使用過程中應當拋開傳統的觀念和想法,避免走入誤區、繞進彎路,在技術轉型的過程中先人一步。

    基于領先的 Mesos和Docker技術,數人云作為一款輕量級PaaS平臺,向下將底層服務器資源統一管理成一個資源池,向上承載用戶的應用,幫助用戶在云端快速建立并穩定運維一個高性能生產環境。數人云歡迎大家前來一同體驗容器技術的美妙。

    原文鏈接:
    http://developerblog.redhat.com/2016/02/24/10-things-to-avoid-in-docker-containers/

    總結

    以上是生活随笔為你收集整理的技术干货 | Docker容器中需要避免的十种常见误区的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。