« Docker Images » : différence entre les versions

Aucun résumé des modifications
 
(2 versions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
== Docker image Info ==
<syntaxhighlight lang="bash" copy>
docker inspect phpmyadmin --format 'Image={{.Config.Image}} | ImageID={{.Image}}' ; docker image inspect phpmyadmin --format 'Tag={{index .RepoTags 0}} | ID={{.Id}} | Created={{.Created}}'</syntaxhighlight>
== Vérifier la date de création d'une image ==
== Vérifier la date de création d'une image ==
<syntaxhighlight lang="bash">docker image inspect debian:latest --format='{{.Id}} {{.Created}}'</syntaxhighlight>
<syntaxhighlight lang="bash" copy>docker image inspect debian:latest --format='{{.Id}} {{.Created}}'</syntaxhighlight>


== Copie locale ==
== Copie locale ==
Ligne 47 : Ligne 51 :
Pour éviter toute confusion ou écrasement accidentel, vous pouvez aussi versionner votre image locale :
Pour éviter toute confusion ou écrasement accidentel, vous pouvez aussi versionner votre image locale :


<syntaxhighlight lang="bash">docker tag debian:latest local/debian:2025-06</syntaxhighlight>
<syntaxhighlight lang="bash" copy>docker tag debian:latest local/debian:2025-06</syntaxhighlight>
Et dans le <code>Dockerfile</code> :
Et dans le <code>Dockerfile</code> :


Ligne 65 : Ligne 69 :
Si tu avais tagué une image locale comme ceci :
Si tu avais tagué une image locale comme ceci :


<syntaxhighlight lang="bash">docker tag debian:latest local/debian:latest</syntaxhighlight>
<syntaxhighlight lang="bash" copy>docker tag debian:latest local/debian:latest</syntaxhighlight>
Tu peux soit : - Supprimer ce tag local : <code>bash  docker rmi local/debian:latest</code> - Ou le renommer pour le conserver : <code>bash  docker tag local/debian:latest local/debian:backup</code>
Tu peux soit : - Supprimer ce tag local : <code>bash  docker rmi local/debian:latest</code> - Ou le renommer pour le conserver : <code>bash  docker tag local/debian:latest local/debian:backup</code>


Ligne 71 : Ligne 75 :
==== 2. '''Tirer la dernière version depuis Docker Hub''' ====
==== 2. '''Tirer la dernière version depuis Docker Hub''' ====


<syntaxhighlight lang="bash">docker pull debian:latest</syntaxhighlight>
<syntaxhighlight lang="bash" copy>docker pull debian:latest</syntaxhighlight>
Cela télécharge la version la plus récente de l’image officielle.
Cela télécharge la version la plus récente de l’image officielle.


Ligne 79 : Ligne 83 :
Si tu veux continuer à utiliser un tag local dans ton <code>Dockerfile</code> :
Si tu veux continuer à utiliser un tag local dans ton <code>Dockerfile</code> :


<syntaxhighlight lang="bash">docker tag debian:latest local/debian:latest</syntaxhighlight>
<syntaxhighlight lang="bash" copy>docker tag debian:latest local/debian:latest</syntaxhighlight>
<span id="rebuilder-ton-image"></span>
<span id="rebuilder-ton-image"></span>
==== 4. '''Rebuilder ton image''' ====
==== 4. '''Rebuilder ton image''' ====
Ligne 85 : Ligne 89 :
Ensuite, tu peux reconstruire ton image avec Docker ou Docker Compose :
Ensuite, tu peux reconstruire ton image avec Docker ou Docker Compose :


<syntaxhighlight lang="bash">docker compose build --no-cache</syntaxhighlight>
<syntaxhighlight lang="bash" copy>docker compose build --no-cache</syntaxhighlight>
L’option <code>--no-cache</code> garantit que tout est reconstruit à partir de la nouvelle image de base.
L’option <code>--no-cache</code> garantit que tout est reconstruit à partir de la nouvelle image de base.


Ligne 97 : Ligne 101 :
Tu peux créer un petit script <code>update-base.sh</code> :
Tu peux créer un petit script <code>update-base.sh</code> :


<syntaxhighlight lang="bash">#!/bin/bash
<syntaxhighlight lang="bash" copy>#!/bin/bash
docker pull debian:latest
docker pull debian:latest
docker tag debian:latest local/debian:latest
docker tag debian:latest local/debian:latest
Ligne 143 : Ligne 147 :
==== '''1. Lister les images sans tag (dangling)''' ====
==== '''1. Lister les images sans tag (dangling)''' ====


<syntaxhighlight lang="sh">docker images -f "dangling=true"</syntaxhighlight>
<syntaxhighlight lang="sh" copy>docker images -f "dangling=true"</syntaxhighlight>
<span id="supprimer-les-images-none-inutiles"></span>
<span id="supprimer-les-images-none-inutiles"></span>
==== '''2. Supprimer les images <code>&lt;none&gt;</code> inutiles''' ====
==== '''2. Supprimer les images <code>&lt;none&gt;</code> inutiles''' ====
Ligne 149 : Ligne 153 :
Pour supprimer '''toutes les images sans tag''' :
Pour supprimer '''toutes les images sans tag''' :


<syntaxhighlight lang="sh">docker image prune</syntaxhighlight>
<syntaxhighlight lang="sh" copy>docker image prune</syntaxhighlight>
(Option <code>-a</code> pour supprimer aussi les images non utilisées par des conteneurs.)
(Option <code>-a</code> pour supprimer aussi les images non utilisées par des conteneurs.)


Ligne 155 : Ligne 159 :
==== '''3. Supprimer une image spécifique par son ID''' ====
==== '''3. Supprimer une image spécifique par son ID''' ====


<syntaxhighlight lang="sh">docker rmi d0045397e427</syntaxhighlight>
<syntaxhighlight lang="sh" copy>docker rmi d0045397e427</syntaxhighlight>
<span id="éviter-les-none-à-lavenir"></span>
<span id="éviter-les-none-à-lavenir"></span>
==== '''4. Éviter les <code>&lt;none&gt;</code> à l’avenir''' ====
==== '''4. Éviter les <code>&lt;none&gt;</code> à l’avenir''' ====
Ligne 161 : Ligne 165 :
<ul>
<ul>
<li><p>'''Toujours nommer/tagger vos images''' explicitement :</p>
<li><p>'''Toujours nommer/tagger vos images''' explicitement :</p>
<syntaxhighlight lang="sh">docker build -t monimage:mon_tag .</syntaxhighlight></li>
<syntaxhighlight lang="sh" copy>docker build -t monimage:mon_tag .</syntaxhighlight></li>
<li><p>'''Nettoyer après un build''' :</p>
<li><p>'''Nettoyer après un build''' :</p>
<syntaxhighlight lang="sh">docker system prune -f</syntaxhighlight></li></ul>
<syntaxhighlight lang="sh" copy>docker system prune -f</syntaxhighlight></li></ul>




Ligne 169 : Ligne 173 :


<span id="pourquoi-votre-cas-est-particulier"></span>
<span id="pourquoi-votre-cas-est-particulier"></span>
=== '''Pourquoi votre cas est particulier ?''' ===
=== '''Pourquoi votre cas est particulier ?''' ===