Le Dockerfile est similaire au manuel de procédure, et vous pouvez l'écrire immédiatement, mais il est assez difficile de vérifier si le contenu (= procédure) est correct. Après l'avoir fait, j'en suis venu à comprendre les points, donc je vais partager la procédure.
Le Dockerfile peut être écrit en héritant du Dockerfile existant. Le «FROM» décrit au début est utilisé pour cet héritage. Pour faciliter les choses, il est important de trouver d'abord un Dockerfile officiel proche de l'environnement que vous souhaitez créer.
Dans mon cas, je crée souvent un environnement Python, donc j'hérite souvent du Dockerfile Python / Miniconda de FROM.
FROM python: 3
conda install
dans la construction d'environnementFROM continuumio / miniconda3
. Spécifiez les balises selon vos besoinsAprès cela, j'écrirai en regardant l'exemple de Dockerfile.
Lorsque vous avez terminé d'écrire, testez si vous pouvez créer un environnement correctement avec lui. La commande docker build
est utilisée à cet effet.
L'utilisation de base est la suivante.
docker build --force-rm=true -t my_image .
--force-rm = true
: Assurez-vous de supprimer le conteneur intermédiaire créé lors de la construction. La construction fonctionne rarement dès la première fois, alors assurez-vous de ne pas laisser de conteneurs étranges en cas de panne.-t
: Définit le nom (balise) de l'image à créer.
dans le cas du répertoire courant).Si vous construisez dans un environnement avec un proxy, mais que vous n'avez pas de proxy dans un environnement de production, vous pouvez passer des variables d'environnement avec --build-arg
.
docker build --force-rm=true -t my_image --build-arg http_proxy=http://myproxy:8080 --build-arg https_proxy=http://myproxy:8080 .
Comme mentionné ci-dessus, il est rare qu'une compilation passe en une seule fois, donc dans ce cas, supprimez l'image qui n'a pas pu être créée. Si vous négligez de faire cela, il sera très difficile de broyer le disque et de l'effacer plus tard.
docker ps -a
pour voir s'il y a des conteneurs en cours de créationdocker rm
. En fait, vous pouvez spécifier le conteneur avec seulement les 3 premières lettres de l'ID.docker ps
ne montre que les conteneurs en cours d'exécution, il est donc fréquent que beaucoup de conteneurs soient cachés derrière vous alors que vous pensiez qu'il n'y avait rien. Notez s'il vous plaîtimages docker
docker rmi
Maintenant c'est propre. Après cela, la construction sera exécutée et nettoyée à plusieurs reprises.
Après avoir créé l'image, essayez de l'exécuter et vérifiez si elle fonctionne correctement. Utilisez docker run
pour créer un conteneur à partir de l'image et l'exécuter.
Lorsque vous l'utilisez réellement, cela ressemblera à ce qui suit.
docker run -p 8080:8080 --rm my_image
-p
pour associer le port côté conteneur avec le port côté hôte. Cette option est souvent utilisée pour vérifier le fonctionnement des applications Web.--rm
supprime automatiquement le conteneur après l'arrêt. Si vous négligez cette option, vous devrez nettoyer les éléments suivants:docker ps
docker stop
docker rm
Notez que docker run
crée un conteneur à partir de l'image à chaque exécution (création d'un conteneur à partir de l'image et exécution du conteneur avec une seule commande). Par conséquent, si vous appuyez à plusieurs reprises sur docker run
, il arrive souvent que le conteneur déborde. Assurez-vous d'utiliser docker rm
from docker stop
pour que le disque ne soit pas occupé par le conteneur.
Une fois que vous avez testé l'exécution, vous avez créé exactement votre Dockerfile. Je vous remercie pour votre travail acharné!
Recommended Posts