« Docker Images » : différence entre les versions
Aucun résumé des modifications |
|||
| Ligne 99 : | Ligne 99 : | ||
docker compose build --no-cache</syntaxhighlight> | docker compose build --no-cache</syntaxhighlight> | ||
== <none>:<none> == | |||
Lorsque vous voyez une image <code><none>:<none></code> dans la liste de <code>docker images</code>, cela signifie qu’il s’agit d’une '''image intermédiaire''' ou d’une '''ancienne version sans tag''', souvent créée dans l’un des cas suivants : | |||
----- | |||
<span id="rebuild-dune-image-avec-le-même-tag"></span> | |||
=== '''1. Rebuild d’une image avec le même tag''' === | |||
Si vous avez reconstruit une image (par exemple <code>debian12:latest</code>) '''sans supprimer l’ancienne version''', Docker conserve l’ancienne image mais lui retire son tag (elle devient <code><none></code>).<br /> | |||
- '''Exemple''' :<br /> | |||
- Vous aviez <code>debian12:latest</code> (ID: <code>abc123</code>).<br /> | |||
- Vous la reconstruisez (nouvel ID: <code>d9997b66177d</code>).<br /> | |||
- L’ancienne (<code>abc123</code>) devient <code><none></code> car le tag <code>latest</code> a été transféré à la nouvelle version. | |||
----- | |||
<span id="image-intermédiaire-couches-docker-non-nettoyées"></span> | |||
=== '''2. Image intermédiaire (couches Docker non nettoyées)''' === | |||
Ces images peuvent aussi être des '''couches temporaires''' générées pendant un <code>docker build</code> (surtout si le build a échoué ou n’a pas été nettoyé). | |||
----- | |||
<span id="image-orpheline-plus-référencée-par-aucun-conteneur"></span> | |||
=== '''3. Image orpheline (plus référencée par aucun conteneur)''' === | |||
Si une image n’est plus utilisée par aucun conteneur et n’a pas de tag, elle apparaît comme <code><none></code>. | |||
----- | |||
<span id="que-faire"></span> | |||
=== '''Que faire ?''' === | |||
<span id="lister-les-images-sans-tag-dangling"></span> | |||
==== '''1. Lister les images sans tag (dangling)''' ==== | |||
<syntaxhighlight lang="sh">docker images -f "dangling=true"</syntaxhighlight> | |||
<span id="supprimer-les-images-none-inutiles"></span> | |||
==== '''2. Supprimer les images <code><none></code> inutiles''' ==== | |||
Pour supprimer '''toutes les images sans tag''' : | |||
<syntaxhighlight lang="sh">docker image prune</syntaxhighlight> | |||
(Option <code>-a</code> pour supprimer aussi les images non utilisées par des conteneurs.) | |||
<span id="supprimer-une-image-spécifique-par-son-id"></span> | |||
==== '''3. Supprimer une image spécifique par son ID''' ==== | |||
<syntaxhighlight lang="sh">docker rmi d0045397e427</syntaxhighlight> | |||
<span id="éviter-les-none-à-lavenir"></span> | |||
==== '''4. Éviter les <code><none></code> à l’avenir''' ==== | |||
<ul> | |||
<li><p>'''Toujours nommer/tagger vos images''' explicitement :</p> | |||
<syntaxhighlight lang="sh">docker build -t monimage:mon_tag .</syntaxhighlight></li> | |||
<li><p>'''Nettoyer après un build''' :</p> | |||
<syntaxhighlight lang="sh">docker system prune -f</syntaxhighlight></li></ul> | |||
----- | |||
<span id="pourquoi-votre-cas-est-particulier"></span> | |||
=== '''Pourquoi votre cas est particulier ?''' === | |||
Dans votre liste :<br /> | |||
- <code>debian12:latest</code> (ID: <code>d9997b66177d</code>) est l’image active.<br /> | |||
- <code><none></code> (ID: <code>d0045397e427</code>) est très probablement '''l’ancienne version''' de <code>debian12:latest</code> avant un rebuild. | |||
→ Vous pouvez la supprimer sans risque si aucun conteneur ne l’utilise. | |||
----- | |||
<span id="résumé"></span> | |||
=== '''Résumé''' === | |||
Les images <code><none></code> sont des résidus normaux de Docker.<br /> | |||
- '''Utilité''' : Permettent des rollbacks ou du caching.<br /> | |||
- '''Nettoyage''' : Utilisez <code>docker image prune</code> pour les supprimer si elles ne servent plus. | |||
[[Catégorie:Docker]] | [[Catégorie:Docker]] | ||