ホームページ >Java >&#&チュートリアル >Docker は複数のイメージを 1 つの機能的な複合イメージにマージできますか?
複合 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 サイトの他の関連記事を参照してください。