Chaque docker run
commande, ou chaque RUN
commande à l'intérieur d'un Dockerfile, crée un conteneur. Si le conteneur ne fonctionne plus, il peut toujours être vu avec docker ps -a
.
Dois-je m'inquiéter d'avoir une énorme liste de conteneurs non fonctionnels? Dois-je émettre docker rm
sur des conteneurs non en cours d'exécution?
Je ne sais pas quelles sont les performances ou les pénalités de mémoire / stockage encourues par ces conteneurs non fonctionnels.
docker exec
commande a été ajoutée il y a quelque temps, voir docs.docker.com/reference/commandline/cli/#exec - elle exécutera une commande sur un conteneur en cours d'exécution.Réponses:
Les conteneurs qui ne sont pas en cours d'exécution n'utilisent aucune ressource système en dehors de l'espace disque.
Il est généralement bon de nettoyer après vous-même, mais si vous en avez beaucoup assis, cela ne devrait pas ralentir du tout les performances.
Si vous remarquez un ralentissement lors de l'exécution de commandes docker avec beaucoup de conteneurs arrêtés, cela peut être un bogue dans docker, et vous devriez soumettre un bogue.
la source
RUN
commande est maintenant déplacée vers: docs.docker.io/en/latest/reference/builder/#runLa
docker run
documentation décrit comment nettoyer automatiquement le conteneur et supprimer le système de fichiers à la fermeture du conteneur:Ce qui précède montre que par défaut les conteneurs ne sont pas supprimés, mais l'ajout
--rm=true
ou simplement le raccourci--rm
fonctionnera comme ceci:Lorsque vous sortez du conteneur, il sera automatiquement supprimé.
Vous pouvez tester cela en répertoriant vos conteneurs Docker dans une fenêtre de terminal:
Et puis, dans une autre fenêtre, exécutez cette commande pour exécuter plusieurs conteneurs docker qui se termineront tous automatiquement après avoir dormi jusqu'à 10 secondes.
la source
-rm
est obsolète et sera supprimé à un moment donné, utilisez à la--rm
place.Si vous exécutez un conteneur avec un volume et n'utilisez pas docker rm -v pour le supprimer, le volume n'est pas supprimé une fois que vous avez supprimé un conteneur. Il y a également un problème avec un pilote de stockage vfs. Si vous oubliez de nettoyer, les volumes consommeront votre espace disque.
la source
Afin d'évaluer la quantité de stockage utilisée par les conteneurs Docker non exécutés, vous pouvez exécuter:
--size
: affiche la taille totale des fichiers (pour info: expliquez la colonne SIZE dans "docker ps -s" et ce que le mot-clé "virtual" signifie # 1520 ).--filter "status=exited"
: liste uniquement les conteneurs arrêtés .De manière équivalente , vous pouvez exécuter:
docker container ls --filter "status=exited"
Vous pouvez également utiliser la commande
docker system df
(introduite dans Docker 1.13.0, janvier 2017) pour voir l'utilisation du disque docker, par exemple:la source