首頁  >  文章  >  Java  >  Docker 能否將多個映像合併為一個功能性複合映像?

Docker 能否將多個映像合併為一個功能性複合映像?

Linda Hamilton
Linda Hamilton原創
2024-10-26 12:08:29216瀏覽

 Can Docker Merge Multiple Images into a Single, Functional Composite Image?

建立複合Docker 映像

查詢: Docker 能否將多個映像合併為一個鏡像,從而組合它們的功能?例如,建立一個將 Java 和 MySQL 分別包含每個元件的單獨鏡像捆綁在一起的鏡像?

解決方案:

Docker 本身並不原生支援鏡像組合,但是 DockerMake ,一個外部工具,啟用此功能。它利用 YAML 設定檔來定義每個映像元件的依賴關係和建構指令。使用 DockerMake,您可以透過繼承多個基礎映像來建立複合映像。

例如,要使用Java 和MySQL 建置映像,您可以定義類似下方提供的DockerMake 設定:

<code class="yaml">specificAB:
  requires:
    - genericA
    - genericB

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

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

customBase:
  FROM: debian:jessie
  build: |
    # Common build instructions for both genericA and genericB, e.g., RUN apt-get update & apt-get install -y buildessentials</code>

安裝了DockerMake(透過pip),只需執行指令docker- make SpecificAB 即可建置所需的複合映像。

以上是Docker 能否將多個映像合併為一個功能性複合映像?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn