web-dev-qa-db-fra.com

docker run: pourquoi utiliser --rm (débutant docker)

J'essaie docker pour la première fois et je n'ai pas encore de "modèle mental". Total débutant.

Tous les exemples que je regarde incluent le drapeau -rm à exécuter, tel que 

docker run -it --rm ...

Ma question: pourquoi "--rm". Je pense que si je me soucie de mettre en place ou de télécharger un conteneur contenant les bonnes choses qu'il contient, pourquoi le retirer, je veux le conserver pour l'utiliser à nouveau. 

Donc, je sais que j'ai la mauvaise idée de docker.

22
matchingmoments

Les conteneurs ne sont que des exemples de l'image que vous utilisez pour les exécuter . L'état d'esprit lors de la création d'une application conteneurisée ne consiste pas à prendre un conteneur ubuntu propre et frais, par exemple, et à télécharger les applications et les configurations que vous souhaitez utiliser. puis laissez-le courir. 

Vous devez traiter le conteneur comme une instance de votre application, mais celle-ci est incorporée à une image . L'utilisation appropriée consisterait à créer une image personnalisée dans laquelle vous incorporerez tous vos fichiers, configurations, variables d'environnement, etc. . En savoir plus sur Dockerfile et comment cela se fait ici

Une fois que vous avez fait cela, vous avez une image qui contient tout, et pour utiliser votre application, il vous suffit d'exécuter l'image avec les paramètres de port appropriés ou d'autres variables dynamiques, en utilisant docker run <your-image>

L'exécution de conteneurs avec l'indicateur --rm convient aux conteneurs que vous utilisez pendant très peu de temps, par exemple, compilez votre application dans un conteneur ou testez simplement quelque chose qui fonctionne, puis vous savez que c'est un conteneur de courte durée et vous indiquez à votre démon Docker qu’une fois que celui-ci est exécuté, effacez tout ce qui le concerne et économisez de l’espace disque.

26
buddy123

from https://docs.docker.com/engine/reference/run/#clean-up---rm

Par défaut, le système de fichiers d’un conteneur persiste même après sa fermeture. Cela facilite beaucoup le débogage (puisque vous pouvez inspecter l'état final) et vous conservez toutes vos données par défaut. Mais si vous exécutez des processus de premier plan à court terme, ces systèmes de fichiers de conteneurs peuvent vraiment s'empiler. Si vous préférez que Docker nettoie automatiquement le conteneur et supprime le système de fichiers à la fermeture du conteneur, vous pouvez ajouter le drapeau --rm.

En petits mots: il est utile de garder l'hôte à l'écart des conteneurs arrêtés et non utilisés.

4
Sandro Modarelli

L'indicateur --rm est utilisé lorsque vous avez besoin de supprimer le conteneur une fois la tâche terminée. 

Ceci est approprié pour de petits tests ou à des fins de POC et épargne le mal de tête pour le ménage.

0
Adnan Khan