Importer une image depuis un répertoire local avec de nouvelles configurations
Dans les étapes précédentes, vous avez importé des images depuis des fichiers tarball. Dans cette étape, vous apprendrez comment importer une image depuis un répertoire local et appliquer de nouvelles configurations lors du processus d'importation. Cette méthode est utile lorsque vous avez un snapshot de système de fichiers dans un répertoire et que vous souhaitez le transformer en image Docker avec des paramètres spécifiques comme la commande à exécuter.
Commencez par créer une structure de répertoire simple et un fichier qui sera inclus dans notre image :
mkdir ~/project/myimage
echo "Hello, Docker!" > ~/project/myimage/hello.txt
Cette commande crée un répertoire nommé myimage
dans votre dossier ~/project
et un fichier hello.txt
contenant le texte "Hello, Docker!".
Nous allons maintenant utiliser la commande docker image import
pour importer le contenu du répertoire ~/project/myimage
. Nous utiliserons également l'option -c
pour spécifier des modifications de configuration pour l'image. Dans ce cas, nous définirons l'instruction CMD
, qui détermine la commande par défaut à exécuter lorsqu'un conteneur est lancé à partir de cette image.
docker image import -c 'CMD ["/bin/cat", "/hello.txt"]' ~/project/myimage myimage:latest
Dans cette commande :
-c 'CMD ["/bin/cat", "/hello.txt"]'
définit la commande par défaut de l'image comme /bin/cat /hello.txt
. L'option -c
permet d'appliquer des instructions Dockerfile comme CMD
, ENTRYPOINT
, ENV
, EXPOSE
, LABEL
, ONBUILD
, STOPSIGNAL
, USER
et WORKDIR
.
~/project/myimage
est le chemin vers le répertoire local contenant le système de fichiers
myimage:latest
est le dépôt et le tag souhaités pour l'image importée
Après exécution de cette commande, Docker créera une nouvelle image basée sur le contenu du répertoire ~/project/myimage
et appliquera la configuration CMD
spécifiée.
Pour vérifier l'importation et la configuration, listez les images :
docker images
Vous devriez voir une image avec le dépôt myimage
et le tag latest
.
Maintenant, lançons un conteneur à partir de cette image pour vérifier que l'instruction CMD
a bien été appliquée :
docker run myimage:latest
Cette commande démarre un conteneur à partir de l'image myimage:latest
. Comme nous avons défini CMD
comme /bin/cat /hello.txt
, le conteneur devrait exécuter cette commande et afficher le contenu du fichier hello.txt
, c'est-à-dire "Hello, Docker!".
Vous devriez voir "Hello, Docker!" s'afficher dans votre terminal. Cela confirme que le contenu du répertoire a bien été importé et que la configuration CMD
a été appliquée avec succès.