如果您像我一樣,第一次創建Dockerfile并從DockerHub頁面中選擇鏡像時,您會徹底困惑。有時候,像這樣的選擇會讓我們的行動停滯不前,所以也許我們只是用標準的鏡像,避免深入研究,這樣我們就可以繼續我們的項目。
但最好了解Docker鏡像類型之間的差異,以便為應用程序或腳本選擇正確的Docker鏡像。要知道這個決定不是永久的。您可以隨時更改Dockerfile中的鏡像,并重建鏡像。請確保在部署到生產環境之前進行徹底的測試。
簡而言之,docker鏡像之間的區別在于底層的操作系統。以下是每種類型的介紹
我將使用python和node作為例子,因為這些是我最常用的docker鏡像,這也同樣適用于任何鏡像。根據DockerHub,這是事實上的標準鏡像,如果你不確定,你應該使用它。
這些鏡像基于最新的穩定Debian操作系統發行版。 當我試圖讓一個項目快速啟動和運行時,我通常會從其中的一個開始,我并不關心最終鏡像的大小。完整鏡像是最安全的選擇
帶有stretch、buster或jessie標簽的鏡像是不同Debian發行版的代號。
在撰寫本文時,穩定的Debian發行版是10.4,它的代號是“buster”。 “stretch”是所有版本9變種的代號,“jessie”是所有版本8變種的代號。
正在開發的未來版本是“bullseye ”和“bookworm”,但還不穩定。你可能會在DockerHub上的鏡像版本列表中看到這些標簽。
如果您的代碼與Debian操作系統的特定版本兼容,請選擇其中一個鏡像。在開始一個新項目時,你很少需要使用舊版本的Debian。
slim的鏡像是完整鏡像的配對版本。這個鏡像通常只安裝運行特定工具所需的最小包。以python為例,就是運行python的最小包,node.js同理。
通過省去較少使用的工具,鏡像會更小。如果有空間限制且不需要完整版本,請使用此鏡像。
**但是,在使用這個鏡像時,一定要進行徹底的測試!**如果您遇到無法解釋的錯誤,請嘗試切換到完整的鏡像,看看是否能夠解決問題。
alipine鏡像基于alpine linux項目,這是一個專門為容器內部使用而構建的操作系統。在很長一段時間里,這些是最受歡迎的鏡像變體,因為它們的尺寸很小。
然而,一些團隊正在棄用alpine鏡像,因為這些鏡像可能會導致難以調試的兼容性問題。具體來說,如果使用python鏡像,一些 wheels將被構建成與Debian兼容,并且需要重新編譯,才能與基于apline的鏡像一起工作。
使用alpine鏡像的主要原因是使你得到的鏡像盡可能小?;A鏡像將小于5MB。python基礎鏡像(將python添加到基礎alpine鏡像)目前是78.9MB。這仍然很小。
如果考慮到空間問題,強烈推薦使用此鏡像。
它的缺點是不包含一些你可能會需要的包。主要是,它使用了一個更小的musl lib代替glibc。如果您的應用程序有特定的libc需求,您可能會遇到問題。
如果你發現Alpine鏡像缺少你需要的東西,你可以直接在Dockerfile中安裝它,這樣能確保鏡像只包含你需要的內容。需要注意,如果您正在安裝外部包,您的Dockerfile將會更改。主要的區別是,您將使用apk而不是apt-get來安裝包。
對alpine鏡像的使用有很多擔心之處,所以你需要充分了解它。需要充分閱讀文檔并研究。 同樣,如果您在構建Dockerfile時遇到了無法解釋的問題,請嘗試切換到完整的鏡像,看看是否能解決問題。
我很少使用windows,我現在堅定地站在Mac / Linux陣營,但如果你的應用程序只運行在windows或windows Server上,這就是為你準備的鏡像。
以下是我使用的通用準則:
如果我需要快速啟動并運行項目,沒有空間限制,并且沒有時間進行太多測試,那么我就使用實際的標準鏡像。 我最關心的是鏡像有我需要的所有東西,鏡像大小并不關心。
如果空間是一個問題,并且我知道我只需要最小的包來運行特定的語言,如python,我會選擇slim
對于一些我有時間徹底測試的項目,并且有極端的空間限制,我將使用alpine鏡像。但是要注意,這可能會導致更長的構建時間和不確定的bug。 如果您在將docker容器移植到新環境時遇到了困難,或者在添加新包時出現了故障,這可能是因為Alpine鏡像。
最后,滾動到特定鏡像的DockerHub頁面底部,閱讀有關選擇鏡像的建議。
不要在生產系統Dockerfile中使用<image>:latest
。這樣做將總是獲取最新的鏡像,并且應用程序的依賴項可能與未來的版本不兼容。
當開始一個新項目時,我通常會從最近標記的版本開始,進行徹底的測試,然后根據需要升級,在投入生產之前進行徹底的測試。
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
網絡推廣與網站優化公司(網絡優化與推廣專家)作為數字營銷領域的核心服務提供方,其價值在于通過技術手段與策略規劃幫助企業提升線上曝光度、用戶轉化率及品牌影響力。這...
在當今數字化時代,公司網站已成為企業展示形象、傳遞信息和開展業務的重要平臺。然而,對于許多公司來說,網站建設的價格是一個關鍵考量因素。本文將圍繞“公司網站建設價...
在當今的數字化時代,企業網站已成為企業展示形象、吸引客戶和開展業務的重要平臺。然而,對于許多中小企業來說,高昂的網站建設費用可能會成為其發展的瓶頸。幸運的是,隨...
1分1981硬幣值多少錢? 1981年1分硬幣價值3000-4000元。1981年的一便士只出現在1981年的《硬幣》紀念套裝中。這套年度套幣主要是作為錢幣收藏贈送或出售給外賓,在流通領域根本找不到。此外,1979年的五分硬幣和1980年的兩分五分硬幣也是如此,所以這五種硬幣統稱為 "五大天王 "在新的硬硬幣。1981年硬幣套產量為23400套。在1分1981硬幣值多少錢?,1981年的1便士約合...
世界十大名表排名?在這個手表“橫行”的時代,全球排名前十的手表分別是:百達翡麗、愛彼、VacheronConstantin、伯爵、積家和Gir Breguet。全球十大頂級奢侈手表?1.豪雅2.江詩丹頓3.百達翡麗4.勞力士手表5.積家6.愛彼迎(美國短租平臺)7.寶璣8.宇舶表9 .歐米茄10.全球十大頂級奢侈手表?第十名:白質白質雖然不像某些品牌那么有名,但卻是鐘表界一個隱藏的“貴族”,其歷...
如何卸載AD廣告攔截大師?攔截手機廣告的方法有很多種。具體方法和步驟如下:1。從正規應用商城下載軟件,不要下載來歷不明的手機軟件;2。發現該廣告設置為禁止手機軟件廣告,防止部分廣告彈出;3。安裝騰訊移動管家等第三方移動安全管理軟件攔截廣告。請問Adb如何設置對人人影視YYET的過濾廣告?關于ABP規則| |res.yyets.com/ads/*據說刪除這個可以。Cafan還有一個驗證碼,非常煩人。...