CodeGym /Cours /Docker SELF /Tags et versions des images

Tags et versions des images

Docker SELF
Niveau 14 , Leçon 2
Disponible

8.1 Tagging dans Docker

Le tagging dans Docker, c'est le processus d'attribuer un tag à une image, ce qui simplifie la gestion des versions. Ça rend le déploiement et la mise à jour des applications plus pratiques et plus maniables. Dans cette conférence, on va examiner en détail ce que sont les tags, comment les utiliser et quelles recommandations peuvent vous aider à mieux bosser avec eux.

Un tag (tag) dans Docker, c'est une étiquette qui permet d'identifier une version spécifique d'une image. Les tags permettent de suivre les changements plus facilement et aident à choisir les bonnes versions pour différents environnements, comme le développement, les tests et la prod.

Concepts principaux des tags :

  1. Unicité : un tag identifie de manière unique une version précise de l'image.
  2. Versioning : les tags servent à désigner les versions des images, par exemple, v1.0, v2.0, latest.
  3. Flexibilité : les tags sont utilisés pour créer des images correspondant à des phases spécifiques du développement, comme beta, stable, prod.

8.2 Comment utiliser les tags

1. Attribuer des tags lors du build d’une image

Tu peux attribuer un tag à une image pendant sa création en utilisant le paramètre -t avec la commande docker build.

Exemple :

Dans cet exemple, l'image reçoit le nom myapp et le tag 1.0.

Terminal


docker build -t myapp:1.0 .

2. Attribuer des tags supplémentaires à une image existante

Tu peux ajouter des tags à une image existante en utilisant la commande docker tag.

Exemple :

Cet exemple attribue à l'image myapp:1.0 un tag supplémentaire latest.

Terminal


docker tag myapp:1.0 myapp:latest

3. Utiliser des tags lors du lancement des conteneurs

Quand tu lances un conteneur, tu peux spécifier un tag précis d'image que tu veux utiliser.

Exemple :

Cet exemple lance un conteneur basé sur l'image myapp avec le tag 1.0.

Terminal


docker run -d myapp:1.0

8.3 Pratique du tagging

Utilisation de la version sémantique

La version sémantique (Semantic Versioning) est une pratique standard d'attribution de versions qui aide à comprendre le niveau des changements dans une image.

Format de version sémantique :


<major>.<minor>.<patch>

Où :

  • major: Changements majeurs, incompatibles avec les versions précédentes.
  • minor: Nouvelles fonctionnalités, compatibles avec les versions précédentes.
  • patch: Corrections de bugs et autres modifications mineures.

Exemple :

Terminal


docker build -t myapp:2.1.3 .

Utilisation des labels supplémentaires

Les labels supplémentaires aident à indiquer l'état d'une image, par exemple, beta, alpha, stable ou prod.

Exemple :

Terminal


docker build -t myapp:1.0-beta .
docker build -t myapp:1.0-stable .

Mise à jour des tags

Lors de la mise à jour d'une image, il est conseillé de modifier les tags pour faciliter le suivi des changements. Le tag latest est souvent utilisé pour indiquer la dernière version d'une image.

Exemple :

Terminal


docker build -t myapp:2.0 .
docker tag myapp:2.0 myapp:latest

8.4 Exemples d'utilisation des tags

Exemples d'utilisation des tags dans différents environnements :

Exemple 1 : Développement

Pour le développement, on utilise souvent des images avec des tags indiquant la version actuelle ou l'état de développement, par exemple, dev.

Terminal


docker build -t myapp:dev .
docker run -d myapp:dev

Exemple 2 : Test

Dans les environnements de test, on utilise des images avec des tags qui indiquent des versions spécifiques ou un état, tels que beta.

Terminal


docker build -t myapp:1.1-beta .
docker run -d myapp:1.1-beta

Exemple 3 : Production

Dans les environnements de production, il est important d'utiliser des versions stables et validées des images, indiquées par des tags comme stable, prod, ou des versions sémantiques telles que 1.1.0-stable.

Terminal


docker build -t myapp:1.1.0-stable .
docker run -d myapp:1.1.0-stable

8.5 Meilleures pratiques

1. Toujours utiliser le versionnement sémantique

Suivez le versionnement sémantique pour toutes les images. Ça aide à distinguer clairement les niveaux de modifications et facilite la gestion des versions.

2. Utiliser des tags clairs et significatifs

Utilisez des tags qui reflètent clairement l'état ou l'objectif de l'image (par exemple, beta, stable, prod).

3. Éviter d'utiliser latest en production

Le tag latest peut être utile pour le développement et les tests, mais en production, mieux vaut utiliser des versions spécifiques pour éviter des modifications imprévisibles.

4. Documenter l'utilisation des tags

Documentez comment et pourquoi les tags sont utilisés dans votre projet. Cela aidera l'équipe à mieux comprendre le processus de versionnement et réduira les risques d'erreurs.

Exemples de Dockerfile avec des tags

Exemple 1 : Création et assignation des tags

Dockerfile

# Dockerfile pour la version 1.0.0 
FROM node:14
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["node", "app.js"]

Commandes pour construire et taguer

Terminal


docker build -t myapp:1.0.0 .
docker tag myapp:1.0.0 myapp:stable

Exemple 2 : Mise à jour de l'image et tagage

Dockerfile

# Dockerfile pour la version 1.1.0 avec une nouvelle fonctionnalité
FROM node:14
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN rm -rf /app/tests /app/docs
ENV NODE_ENV=production
EXPOSE 3000
CMD ["node", "app.js"]

Commandes pour construire et taguer

Terminal

        
docker build -t myapp:1.1.0 .
docker tag myapp:1.1.0 myapp:latest
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION