Combinaison d'images Docker : fusion de plusieurs images en un seul calque
La combinaison de plusieurs images Docker en une seule image unifiée est une fonctionnalité qui n'est pas prise en charge nativement par Docker. Cependant, l'outil DockerMake, développé par un contributeur open source, apporte une solution pour répondre à ce besoin.
DockerMake utilise un fichier de configuration YAML pour définir la composition de l'image cible. Ce fichier spécifie les images de base qui contribuent à l'image finale, ainsi que toutes les instructions de construction nécessaires. Prenons l'exemple de scénario dans lequel vous souhaitez créer une image incluant à la fois des fonctionnalités Java et MySQL.
À l'aide de DockerMake, vous pouvez créer un fichier DockerMake.yml avec la structure suivante :
specificAB: requires: - genericA - genericB genericA: requires: - customBase build_directory: [local directory path] build: | # Dockerfile commands for genericA # e.g., ADD installA.sh, RUN ./installA.sh genericB: requires: - customBase build: | # Dockerfile commands for genericB # e.g., RUN apt-get install -y genericB, ENV PATH=$PATH:something customBase: FROM: debian:jessie build: | # Dockerfile commands for customBase # e.g., RUN apt-get update && apt-get install -y build-essentials
Pour créer l'image AB spécifique à l'aide de DockerMake, exécutez simplement la commande :
docker-make specificAB
Cette commande générera les fichiers Docker nécessaires en fonction de la configuration YAML et exécutera le processus de construction, créant finalement une image unifiée qui englobe les fonctionnalités de Java et de MySQL.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3