Article

Logo docker

Docker Memento

deveops
7.47min to read
15-01-2024

Memento des instructions de base de docker

Introduction


Docker vous permet d'empaqueter facilement vos applications et services dans des containers afin de pouvoir les utiliser sur des environnements différents. Cependant, lorsque vous travaillez avec Docker, il est également facile d'accumuler un nombre excessifs d'images de conteneurs et de volumes de données inutilisés qui encombrent l'espace disque.

Élimination de toutes les images, conteneurs, volumes et réseaux inutilisés ou en suspends.


Docker fourni une commande unique qui nettoiera toutes les ressources , images, conteneurs, volumes et réseaux, qui sont en suspens (non associés à un conteneur).

$ docker system prune

Pour supprimer en plus tous les conteneurs arrêtés et toutes les images non utilisées (pas seulement les images en suspens), ajoutez l’indicateur ‘-a’ à la commande :

$ docker system prune -a


Suppression des images de docker


Pour supprimer une ou plusieurs images spécifiques, utilisé la commande docker images avec le drapeau " -a" pour localiser l'id des images que vous voulez supprimer. Cela vous montrera toutes les images, y compris les couches d’images intermédiaires. Lorsque vous avez localisé les images que vous voulez supprimer, vous pouvez passer leur ID ou leur étiquette à docker rmi :

    Lister:

    $ docker images -a


    Supprimer :

    $  docker rmi imageName imageName


Supprimer les images en suspens


Les images de Docker sont constituées de plusieurs couches. Les images en suspens sont des couches qui n’ont aucune relation avec les images marquées. Elles n’ont plus d’utilités et consomment de l’espace disque. Elles peuvent être localisées en ajoutant le drapeau filtre, "-f" avec une valeur de "dangling=true" à la commande docker images. Lorsque vous êtes sûr de vouloir les supprimer, vous pouvez utiliser la commande docker images purge :

Remarque : Si vous construisez une image sans la tagger, l'image apparaîtra dans la liste des images en suspens car elle n'a pas d'association avec une image taguée. Vous pouvez éviter cette situation en fournissant une balise lors de la construction, et vous pouvez tagger rétroactivement une image avec la commande docker tag.

    Lister :

    $  docker images -f dangling=true


    Supprimer :

    $  docker images purge


Suppression d’images selon un modèle


Vous pouvez trouver toutes les images qui correspondent à un modèle en utilisant une combinaison de "docker images et grep". Une fois que vous êtes satisfait, vous pouvez les supprimer en utilisant "awk" pour passer les identifiants à "docker rmi". Notez que ces utilitaires ne sont pas fournis par Docker et ne sont pas nécessairement disponibles sur tous les systèmes :

    Lister :

    $ docker images -a |  grep "pattern"


    Supprimer :

    $ docker images -a | grep "pattern" | awk '{print $3}' | xargs docker rmi



Supprimer toutes les images


Toutes les images de Docker sur un système peuvent être listées en ajoutant "-a" à la commande docker images. Une fois que vous êtes sûr de vouloir toutes les supprimer, vous pouvez ajouter le drapeau "-q" pour passer l’ID de l’image au docker rmi :

    Lister :

   $  docker images -a

    Supprimer :

    $  docker rmi $(docker images -a -q)


Force la suppression. Par exemple, si des conteneurs sont en cours d’exécution, vous avez besoin de -f pour les supprimer.

    $  docker rmi -f $(docker images -a -q) 



Suppression de conteneurs


Pour supprimer un ou plusieurs conteneurs spécifiques, utilisez la commande "docker ps" avec le drapeau "–a" pour localiser le nom ou l’ID des conteneurs que vous voulez supprimer.

    Lister :

    $  docker ps -a

    Supprimer :

    $  docker rm ID_or_Name ID_or_Name


Supprimer un conteneur à la sortie


Si vous savez, lorsque vous créez un conteneur, que vous ne voudrez pas le conserver une fois que vous aurez terminé, vous pouvez lancer le programme "docker run –rm" pour le supprimer automatiquement à sa sortie.

    Exécuter et supprimer :

    $  docker run --rm image_name


Supprimer tous les conteneurs quittés


Vous pouvez localiser les conteneurs en utilisant le "docker ps -a" et les filtrer selon leur statut : créé, redémarré, en cours d’exécution, en pause ou quitté.

Pour consulter la liste des conteneurs quittés, utilisez le drapeau "-f" pour filtrer en fonction de leur statut.

Lorsque vous avez vérifié que vous voulez supprimer ces conteneurs, utilisez "-q" pour transmettre les ID à la commande "docker rm".

    Lister :

    $  docker ps -a -f status=exited

    Supprimer :

    $  docker rm $(docker ps -a -f status=exited -q)


Supprimer les conteneurs en utilisant plusieurs filtre


Les filtres de Docker peuvent être combinés en répétant le drapeau "filter" avec une valeur supplémentaire. Il en résulte une liste de conteneurs qui remplissent l’une ou l’autre de ces conditions.

Par exemple, si vous voulez supprimer tous les conteneurs marqués comme étant soit Créé (un état qui peut survenir lorsque vous exécutez un conteneur avec une commande non valide) soit Quitté, vous pouvez utiliser deux filtres :

    Lister :

   $  docker ps -a -f status=exited -f status=created

    Supprimer :

    $ docker rm $(docker ps -a -f status=exited -f status=created -q)



Supprimer des conteneurs selon un modèle


Vous pouvez trouver tous les containers qui correspondent à un modèle en utilisant une combinaison de  "docker ps et grep". Lorsque vous êtes satisfait de la liste que vous souhaitez supprimer, vous pouvez utiliser "awk" et "xargs" pour fournir l’ID à "docker rmi".

Notez que ces utilitaires ne sont pas fournis par Docker et ne sont pas nécessairement disponibles sur tous les systèmes :

    Lister :

    $  docker ps -a |  grep "pattern”

    Supprimer :

    $  docker ps -a | grep "pattern" | awk '{print $3}' | xargs docker rmi


Arrêter et supprimer tous les conteneurs


Vous pouvez consulter les conteneurs sur votre système avec docker ps. L’ajout du drapeau "-a" affichera tous les conteneurs.

Lorsque vous êtes sûr de vouloir les supprimer, vous pouvez ajouter le drapeau "-q" pour fournir les identifiants aux commandes "docker start" et "docker rm" :

    Lister :

   $  docker ps -a

   

Supprimer :

   $ docker stop $(docker ps -a -q)  
  $ docker rm $(docker ps -a -q)



Suppression de volumes


Pour supprimer un ou plusieurs volumes spécifiques – Docker 1.9 et suivants, utilisez la commande "docker volume ls" pour localiser le ou les noms de volume que vous souhaitez supprimer.

Ensuite, vous pouvez supprimer un ou plusieurs volumes avec la commande "docker volume rm" :

    Lister :

    $  docker volume ls

    Supprimer :

    $  docker volume rm volume_name volume_name


Supprimer des volumes en suspens – Docker 1.9 et suivants


Étant donné que le principe des volumes est d’exister indépendamment des conteneurs, lorsque un conteneur est retiré, un volume n’est pas automatiquement retiré en même temps.

Lorsque un volume existe et n’est plus connecté à aucun conteneur, on l’appelle un volume en suspens.

Pour les localiser afin de confirmer que vous voulez les retirer, vous pouvez utiliser la commande "docker volume ls" avec un filtre pour limiter les résultats aux volumes en suspens.

Lorsque vous êtes satisfait de la liste, vous pouvez tous les supprimer avec "docker volume prune" :

    Lister :

    $  docker volume ls -f dangling=tr

    Supprimer :

    $  docker volume prune


Supprimer un conteneur et son volume


Si vous avez créé un volume sans nom, il peut être supprimé en même temps que le conteneur avec le drapeau "-v".

Notez que cela ne fonctionne qu’avec les volumes non nommés.

Lorsque le conteneur est supprimé avec succès, son ID est affiché.

Notez qu’aucune référence n’est faite à la suppression du volume.

S’il n’est pas nommé, il est supprimé silencieusement du système.

S’il est nommé, il reste silencieusement présent.

    Supprimer :

    $  docker rm -v container_name

Conclusion


Ce guide couvre certaines des commandes courantes utilisées pour supprimer les images, les conteneurs et les volumes avec Docker.

Il existe de nombreuses autres combinaisons et drapeaux qui peuvent être utilisés avec chacun d’entre eux.

Pour un guide complet sur ce qui est disponible, consultez la documentation Docker pour docker system prune , docker rmi , docker rm et docker volume rm.

S’il existe des tâches courantes de nettoyage que vous souhaitez voir dans le guide, veuillez demander ou faire des suggestions dans les commentaires.

liste des articles