建立複合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中文網其他相關文章!