Combinaison de plusieurs images Docker
La combinaison de plusieurs images Docker en une seule image unifiée n'est pas directement prise en charge par Docker. Cependant, il existe des outils tiers disponibles pour faciliter ce processus. DockerMake est l'un de ces outils qui permet la création de scénarios d'héritage d'images complexes.
Utilisation de DockerMake pour combiner des images
DockerMake fonctionne en utilisant un fichier YAML pour définir les relations entre Images Docker. Sur la base de la configuration YAML, DockerMake génère des fichiers Docker qui guident le processus de construction.
Par exemple, pour combiner une image Java et MySQL dans une nouvelle image nommée « SpecificAB », vous devez créer un fichier DockerMake.yml comme suit :
<code class="yaml">specificAB: requires: - genericA - genericB genericA: requires: - customBase build_directory: [a local directory] build: | # Dockerfile commands specific to genericA genericB: requires: - customBase build: | # Dockerfile commands specific to genericB customBase: FROM: Debian:jessie build: | # Dockerfile commands to set up the base image</code>
Cette configuration établit la structure d'héritage suivante :
</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"> --> genericA -- / \ debian:jessie --> customBase ---> specificAB \ / --> genericB --
Création de l'image combinée
Pour créer l'image "spécifiqueAB" à l'aide de DockerMake, exécutez simplement la commande suivante :
<code class="bash">docker-make specificAB</code>
Conclusion
Bien que Docker ne fournisse pas directement de mécanisme intégré pour combiner des images, DockerMake offre une solution pratique et puissante pour réaliser cette fonctionnalité. En définissant des scénarios d'héritage complexes dans un fichier YAML, DockerMake rationalise le processus de création et de gestion d'images Docker combinées.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!