Table des matières

Mots clés

Voir aussi :

Fondements de la technologie Docker

Problèmes récurrents

–> Soit vous ne supprimez pas assez souvent (voir pas du tout) vos conteneurs. Les conteneurs ne sont pas faits pour stocker des informations. Ils doivent être utilisés pour fournir un environnement (un serveur, une application). Les données importantes (si il y en a) doivent être localisées en dehors du conteneur. Tous vos conteneurs finissent par prendre de la place, beaucoup de place, il faut donc les supprimer :

docker stop `docker ps -aq` # back quote AltGr + 7
docker rm `docker ps -aq`
# Pour info: docker ps -a liste en mode verbeux tout les conteneurs (lancés ou à l'arrêt), -q permet de ne voir s'afficher que les identifiants des conteneurs
Astuce: Utiliser l'option –rm dans la commande de lancement d'un conteneur, exemple avec l'image android-dev:
docker run --rm -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix -v ${HOME}/AndroidProjects:/home/android/AndroidProjects -v /dev/bus/usb:/dev/bus/usb --device=/dev/bus/usb:/dev/bus/usb:rwm -ti android-dev:latest

Cela permet de supprimer le conteneur dès que celui-ci est arrêté.

–> Soit vous avez trop d'images et de trop grande taille, il faut faire le ménage:

docker images # liste les images
docker rmi mon_image # supprime l'image mon_image (A NE PAS FAIRE SUR LES POSTES AIO DE SALLES DE TPS ==> UTILISER PLUTOT L'ALIAS _clean )

–> Dans le cas ou vous auriez quand même des données importantes dans un conteneur. Voici une méthode pour les pérenniser :

docker commit nom_conteneur nom_nouvelle_image # Permet de créer l'image nom_nouvelle_image
docker rm -f nom_conteneur # Supprime le conteneur avec les données sensibles
docker run -it nom_nouvelle_image /bin/bash # Lance un conteneur avec les données sensibles qui désormais persistent dans l'image nom_nouvelle_image
Attention, en cas de suppression de l'image nom_nouvelle_image :
# docker rmi nom_nouvelle_image

Vous perdez les données sensibles liées à l'image nom_nouvelle_image.

Comment faire pour ...

... récupérer de l'espace disque ?

Supprimer les images orphelines

À force de changements des Dockerfile, les processus de reconstruction d'image peuvent créer de nombreuses images dites orphelines (même si le terme ne convient pas, car elles ont des images parentes … Elles sont orphelines dans le sens où elle ne servent plus et sont donc à l'abandon). Les images orphelines sont des images qui ne sont pas identifiées (“<none>”) et qui ne sont parent d'aucune image (i.e.: ce ne sont pas des images intermédiaires). Pour les supprimer, il suffit d'exécuter la commande suivante :

docker rmi `docker images --quiet --filter dangling=true`
Ne soyez pas surpris si, pendant l’exécution de cette commande, vous voyez apparaître la suppression de beaucoup plus d'images que ce que vous pensiez. Il s'agit en fait de la destruction des images intermédiaires qui servaient à la construction de l'image orpheline que vous détruisez et qui du coup deviennent orphelines à leur tour.

Supprimer toutes les images

docker rmi `docker images -q`

Supprimer tous les conteneurs

docker rm [-f] `docker ps -aq`