ホームページ  >  記事  >  Java  >  Docker は複数のイメージを 1 つの機能的な複合イメージにマージできますか?

Docker は複数のイメージを 1 つの機能的な複合イメージにマージできますか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-26 12:08:29293ブラウズ

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

複合 Docker イメージの構築

クエリ: Docker は複数のイメージを 1 つのイメージにマージし、それらの機能を結合できますか?たとえば、各コンポーネントを個別に含む個別のイメージから 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 は複数のイメージを 1 つの機能的な複合イメージにマージできますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。