Docker Images

Version datée du 9 juin 2025 à 17:50 par Geo (discussion | contributions)
(diff) ← Version précédente | Version actuelle (diff) | Version suivante → (diff)

Copie locale

Conserver une copie locale de l’image debian:latest et Construire une image Docker à partir de cette copie locale, sans la re-télécharger depuis Docker Hub à chaque fois.



Étapes à suivre

1. Télécharger et taguer localement l’image debian:latest

Avant de construire votre image, vous pouvez tirer l’image une fois et la taguer localement :

docker pull debian:latest
docker tag debian:latest local/debian:latest

Cela crée une image locale nommée local/debian:latest.



2. Adapter le Dockerfile

Modifiez la ligne FROM pour utiliser l’image locale :

FROM local/debian:latest AS tools

Cela indique à Docker d’utiliser l’image locale local/debian:latest comme base, sans aller chercher sur Docker Hub.



3. Aucune modification nécessaire dans docker-compose.yml

Le fichier docker-compose.yml n’a pas besoin d’être modifié, car le Dockerfile utilise déjà l’image locale comme base. Docker Compose utilisera cette image locale lors du build.



🧠 Astuce supplémentaire

Pour éviter toute confusion ou écrasement accidentel, vous pouvez aussi versionner votre image locale :

docker tag debian:latest local/debian:2025-06

Et dans le Dockerfile :

FROM local/debian:2025-06 AS tools



Étapes pour mettre à jour l’image debian:latest depuis Docker Hub

1. Supprimer ou retaguer l’image locale

Si tu avais tagué une image locale comme ceci :

docker tag debian:latest local/debian:latest

Tu peux soit : - Supprimer ce tag local : bash docker rmi local/debian:latest - Ou le renommer pour le conserver : bash docker tag local/debian:latest local/debian:backup

2. Tirer la dernière version depuis Docker Hub

docker pull debian:latest

Cela télécharge la version la plus récente de l’image officielle.

3. (Optionnel) Re-tagger pour ton usage local

Si tu veux continuer à utiliser un tag local dans ton Dockerfile :

docker tag debian:latest local/debian:latest

4. Rebuilder ton image

Ensuite, tu peux reconstruire ton image avec Docker ou Docker Compose :

docker compose build --no-cache

L’option --no-cache garantit que tout est reconstruit à partir de la nouvelle image de base.



🧠 Astuce bonus : Automatiser la mise à jour

Tu peux créer un petit script update-base.sh :

#!/bin/bash
docker pull debian:latest
docker tag debian:latest local/debian:latest
docker compose build --no-cache

<none>:<none>

Lorsque vous voyez une image <none>:<none> dans la liste de docker images, 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 :



1. Rebuild d’une image avec le même tag

Si vous avez reconstruit une image (par exemple debian12:latest) sans supprimer l’ancienne version, Docker conserve l’ancienne image mais lui retire son tag (elle devient <none>).
- Exemple :
- Vous aviez debian12:latest (ID: abc123).
- Vous la reconstruisez (nouvel ID: d9997b66177d).
- L’ancienne (abc123) devient <none> car le tag latest a été transféré à la nouvelle version.



2. Image intermédiaire (couches Docker non nettoyées)

Ces images peuvent aussi être des couches temporaires générées pendant un docker build (surtout si le build a échoué ou n’a pas été nettoyé).



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 <none>.



Que faire ?

1. Lister les images sans tag (dangling)

docker images -f "dangling=true"

2. Supprimer les images <none> inutiles

Pour supprimer toutes les images sans tag :

docker image prune

(Option -a pour supprimer aussi les images non utilisées par des conteneurs.)

3. Supprimer une image spécifique par son ID

docker rmi d0045397e427

4. Éviter les <none> à l’avenir

  • Toujours nommer/tagger vos images explicitement :

    docker build -t monimage:mon_tag .
    
  • Nettoyer après un build :

    docker system prune -f
    



Pourquoi votre cas est particulier ?

Dans votre liste :
- debian12:latest (ID: d9997b66177d) est l’image active.
- <none> (ID: d0045397e427) est très probablement l’ancienne version de debian12:latest avant un rebuild.

→ Vous pouvez la supprimer sans risque si aucun conteneur ne l’utilise.



Résumé

Les images <none> sont des résidus normaux de Docker.
- Utilité : Permettent des rollbacks ou du caching.
- Nettoyage : Utilisez docker image prune pour les supprimer si elles ne servent plus.