」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > DockerMake 如何將多個 Docker 映像合併為一個統一映像?

DockerMake 如何將多個 Docker 映像合併為一個統一映像?

發佈於2024-11-17
瀏覽:153

How Can DockerMake Combine Multiple Docker Images into a Single Unified Image?

Docker 映像組合:將多個映像合併到一個圖層

將多個 Docker 映像組合成一個統一的映像是 Docker 本身不支援的功能。然而,由開源貢獻者開發的 DockerMake 工具提供了一個解決方案來滿足這一需求。

DockerMake 使用 YAML 設定檔定義目標映像的組成。該檔案指定構成最終映像的基礎映像以及任何必要的建置指令。考慮一下範例場景,您希望建立一個包含 Java 和 MySQL 功能的映像。

使用 DockerMake,您可以建立具有以下結構的 DockerMake.yml 檔案:

specificAB:
  requires:
    - genericA
    - genericB

genericA:
  requires:
    - customBase
  build_directory: [local directory path]
  build: |
    # Dockerfile commands for genericA
    # e.g., ADD installA.sh, RUN ./installA.sh

genericB:
  requires:
    - customBase
  build: |
    # Dockerfile commands for genericB 
    # e.g., RUN apt-get install -y genericB, ENV PATH=$PATH:something

customBase:
  FROM: debian:jessie
  build: |
    # Dockerfile commands for customBase
    # e.g., RUN apt-get update && apt-get install -y build-essentials

要使用DockerMake 建立SpecificAB 映像,只需執行指令:

docker-make specificAB

此命令將根據YAML 配置產生必要的Dockerfile 並執行建置過程,最終建立一個包含Java 和MySQL 功能的統一映像。

最新教學 更多>
  • 發現漸進式 Web 應用程式為您的下一個專案帶來的最大優勢
    發現漸進式 Web 應用程式為您的下一個專案帶來的最大優勢
    Progressive online Apps, or PWAs, are quickly changing the online development landscape. PWAs are becoming the ideal way to connect mobile application...
    程式設計 發佈於2024-11-17
  • 現代 C++ 實作中的 std::list::size() 真的是 O(1) 嗎?
    現代 C++ 實作中的 std::list::size() 真的是 O(1) 嗎?
    在現代實作 std::list::size() 真的是 O(n) 嗎? 最近,一些開發人員建議std::list::size() 具有線性時間複雜度 (O(n))。但是,根據 C 標準,複雜性沒有定義,並且可能會根據實現而變化。 在 C 標準的早期版本 (C 03) 中,建議 size() 操作具有...
    程式設計 發佈於2024-11-17
  • Bootstrap 4 Beta 中的列偏移發生了什麼事?
    Bootstrap 4 Beta 中的列偏移發生了什麼事?
    Bootstrap 4 Beta:列偏移的刪除和恢復Bootstrap 4 在其Beta 1 版本中引入了重大更改柱子偏移了。然而,隨著 Beta 2 的後續發布,這些變化已經逆轉。 從 offset-md-* 到 ml-auto在 Bootstrap 4 Beta 1 中, offset-md-*...
    程式設計 發佈於2024-11-17
  • 如何在 Heroku 上建立對 ClearDB MySQL 資料庫的遠端存取?
    如何在 Heroku 上建立對 ClearDB MySQL 資料庫的遠端存取?
    在 Heroku 上遠端存取 ClearDB MySQL 資料庫遠端查詢 ClearDB MySQL 資料庫可以透過 MySQL 查詢瀏覽器等工具來實現。要建立連接,您需要以下資訊:獲取資料庫憑證和連接詳細資訊:導航至Heroku 網站並選擇“My應用程式。” 選擇與ClearDB 資料庫關聯的應用...
    程式設計 發佈於2024-11-17
  • 何時選擇 IFNULL 而不是 COALESCE 以獲得最佳性能?
    何時選擇 IFNULL 而不是 COALESCE 以獲得最佳性能?
    效能比較:IFNULL 與COALESCE當資料庫列只能有兩個候選值時,IFNULL 和COALESCE 都可以用來檢索非空值。然而,目前還不清楚哪個函數更快。 調查儘管相信IFNULL 更優越,但軼事證據表明COALESCE 可能同等甚至更高效.基準測試注意事項確定哪個函數是真正更快,有必要針對特...
    程式設計 發佈於2024-11-17
  • 如何使用 Access-SQL 中的內連線從多個表中擷取資料?
    如何使用 Access-SQL 中的內連線從多個表中擷取資料?
    Access-SQL:多表內連接在Access資料庫中處理多個互連表時,需要檢索資料無縫地從多個來源。一種有效的方法是利用內聯接,它允許根據匹配值從多個表中檢索資料。 要擷取跨越多個資料表的特定值,可以使用下列查詢:SELECT tblOjt.ID, tblStudent.Lastname,...
    程式設計 發佈於2024-11-17
  • 為什麼我的 Less.js 無法在 Chrome 中運作?
    為什麼我的 Less.js 無法在 Chrome 中運作?
    Less.js 在Chrome 中沒有回應Less.js 在Firefox 中的功能在Chrome 中仍然沒有回應,這引起了人們的擔憂。要確定原因,讓我們檢查提供的程式碼:<link rel="stylesheet/less" href="css/style.le...
    程式設計 發佈於2024-11-17
  • 如何使用 PHP 的 json_encode() 函數正確編碼 JSON 中的特殊字元?
    如何使用 PHP 的 json_encode() 函數正確編碼 JSON 中的特殊字元?
    JSON 編碼與特殊字元使用json_encode() 函數對陣列進行編碼時,可能會發生包含特殊字元的元素被轉換為空字串。對於版權或商標符號等字符,此行為尤其明顯。 要解決此問題,請確保所有字串資料都經過 UTF-8 編碼,然後再將其編碼為 JSON。這可以透過將 array_map() 與 utf...
    程式設計 發佈於2024-11-17
  • ## 儘管查詢成功,為什麼我的 Go-GORM 結構欄位仍傳回預設值?
    ## 儘管查詢成功,為什麼我的 Go-GORM 結構欄位仍傳回預設值?
    訪問Go-GORM 結構中的查詢結果您遇到的問題是查詢結果為“res”結構儘管查詢執行成功,但仍保留預設值。這與 Go-GORM 中的命名約定有關。 要解決這個問題,您可以使用公共欄位來讓您的 'res' 類型可公開存取:type Res struct { ID int ...
    程式設計 發佈於2024-11-17
  • 如何從 MySQL 中的多個欄位中選擇不同的值組合?
    如何從 MySQL 中的多個欄位中選擇不同的值組合?
    在MySQL 中從多列中選擇不同的值使用資料庫時,通常需要從多列中檢索唯一的值組合。但是,使用 DISTINCT 關鍵字可能無法總是產生所需的結果。本文探討了從 MySQL 資料庫中的兩列中選擇不同值的另一種方法。 考慮以下名為「foo_bar」的表格:foo欄accccfd ]acacafcacd...
    程式設計 發佈於2024-11-17
  • 大批
    大批
    方法是可以在物件上呼叫的 fns 數組是對象,因此它們在 JS 中也有方法。 slice(begin):將陣列的一部分提取到新數組中,而不改變原始數組。 let arr = ['a','b','c','d','e']; // Usecase: Extract till index ...
    程式設計 發佈於2024-11-17
  • 如何使用 Goose 解決 PostgreSQL 函數中的“未終止的美元引用字串”錯誤?
    如何使用 Goose 解決 PostgreSQL 函數中的“未終止的美元引用字串”錯誤?
    未終止的美元引用字串:用分號解決錯誤在使用Goose 創建PostgreSQL 函數的上下文中,本文解決了一個錯誤在處理函數體內的複雜語句時遇到。 pq 庫報告的錯誤表明美元引用的字串仍未終止。 要解決此問題,請注意以分號為特徵的複雜語句需要使用“-- goose StatementBegin”和“...
    程式設計 發佈於2024-11-17
  • 如何從 PHP 網站執行 Java 程式?
    如何從 PHP 網站執行 Java 程式?
    從PHP 網站利用Java 的運算能力肩負著讓您的網站使用者能夠從內部執行Java 程式的使命瀏覽器中,本指南將深入研究連接這兩個世界的複雜性。 從PHPPHP 值得信賴的 exec() 函數成為彌補這一差距的首選武器。它使您能夠在 PHP 的懷抱中呼叫帶有參數的任何 Java 程式。像這樣的簡單語...
    程式設計 發佈於2024-11-17
  • 了解堆疊資料結構:在 JavaScript 中實作堆疊的逐步指南
    了解堆疊資料結構:在 JavaScript 中實作堆疊的逐步指南
    堆栈是一种简单的线性数据结构,其工作原理就像一堆盘子?️。它遵循后进先出 (LIFO) 原则。将其视为一堆盘子:您只能添加或删除堆顶部的盘子。 为了更好的理解栈,让我们来一次短暂的想象之旅吧?. 想象一下您在一家高档餐厅??️,厨房工作人员正在为忙碌的夜晚做准备??‍?。在餐具区,有一大堆盘子等待使...
    程式設計 發佈於2024-11-17
  • 如何在不使用 if/else 語句的情況下在 CSS 中實作條件邏輯?
    如何在不使用 if/else 語句的情況下在 CSS 中實作條件邏輯?
    CSS 中的條件語句:另一種方法在現代Web 開發中,基於動態變數無縫調整使用者體驗至關重要。 CSS 雖然在樣式方面功能強大,但缺乏 if/else 等傳統條件語句。然而,有幾種替代方法可以實現類似的功能。 一種方法是利用類別。透過使用特定類別操作 HTML 元素,您可以根據這些類別的存在或不存在...
    程式設計 發佈於2024-11-17

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3