CodeGym /Corsi /Docker SELF /Tag e versioni delle immagini

Tag e versioni delle immagini

Docker SELF
Livello 14 , Lezione 2
Disponibile

8.1 Tagging in Docker

Il tagging in Docker è il processo di assegnare un'etichetta a un'immagine, il che semplifica la gestione delle versioni. Questo rende il deployment e l'aggiornamento delle applicazioni più comodi e gestibili. In questa lezione analizzeremo in dettaglio cosa sono i tag, come usarli e quali consigli possono aiutarti a lavorare con essi in modo più efficiente.

Tag (tag) in Docker — un'etichetta che consente di identificare una specifica versione di un'immagine. I tag semplificano il monitoraggio delle modifiche e aiutano a scegliere le versioni necessarie per diversi ambienti, come sviluppo, testing e produzione.

Concetti principali sui tag:

  1. Unicità: il tag identifica in modo univoco una specifica versione dell'immagine.
  2. Versionamento: con i tag si indicano le versioni delle immagini, ad esempio, v1.0, v2.0, latest.
  3. Flessibilità: i tag vengono utilizzati per creare immagini che corrispondono a specifiche fasi di sviluppo, ad esempio, beta, stable, prod.

8.2 Come usare i tag

1. Assegnare tag durante la build di un'immagine

Puoi assegnare un tag a un'immagine durante la sua build usando il parametro -t del comando docker build.

Esempio:

In questo esempio viene assegnato il nome myapp e il tag 1.0 all'immagine.

Terminale


docker build -t myapp:1.0 .

2. Assegnare tag aggiuntivi a un'immagine esistente

Puoi aggiungere tag a un'immagine già esistente usando il comando docker tag.

Esempio:

Questo esempio assegna all'immagine myapp:1.0 un tag aggiuntivo latest.

Terminale


docker tag myapp:1.0 myapp:latest

3. Usare i tag quando avvii i container

Quando avvii un container, puoi specificare un particolare tag dell'immagine che vuoi usare.

Esempio:

Questo esempio avvia un container basato sull'immagine myapp con il tag 1.0.

Terminale


docker run -d myapp:1.0

8.3 Pratica del tagging

Uso della versione semantica

La versione semantica (Semantic Versioning) è una pratica standard per assegnare versioni, che aiuta a capire il livello di cambiamenti nell'immagine.

Formato della versione semantica:


<major>.<minor>.<patch>

Dove:

  • major: Modifiche principali, non compatibili con le versioni precedenti.
  • minor: Nuove funzionalità, compatibili con le versioni precedenti.
  • patch: Correzioni di bug e altri cambiamenti minori.

Esempio:

Terminale


docker build -t myapp:2.1.3 .

Uso di etichette aggiuntive

Le etichette aggiuntive aiutano a definire lo stato dell'immagine, ad esempio, beta, alpha, stable o prod.

Esempio:

Terminale


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

Aggiornamento dei tag

Durante l'aggiornamento dell'immagine, si consiglia di modificare i tag per facilitare il monitoraggio delle modifiche. Il tag latest è spesso usato per indicare l'ultima versione dell'immagine.

Esempio:

Terminale


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

8.4 Esempi di utilizzo dei tag

Esempi di utilizzo dei tag in diversi ambienti:

Esempio 1: Sviluppo

Per lo sviluppo spesso si utilizzano immagini con tag che indicano la versione attuale o lo stato dello sviluppo, ad esempio, dev.

Terminale


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

Esempio 2: Test

Negli ambienti di test si usano immagini con tag che indicano versioni specifiche o stati, come beta.

Terminale


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

Esempio 3: Produzione

Negli ambienti di produzione è importante utilizzare versioni stabili e testate delle immagini, indicate da tag come stable, prod, oppure versioni semantiche come 1.1.0-stable.

Terminale


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

8.5 Migliori pratiche

1. Usa sempre il versionamento semantico

Segui il versionamento semantico per tutte le immagini. Questo aiuta a distinguere chiaramente i livelli di modifiche e facilita la gestione delle versioni.

2. Usa tag chiari e significativi

Utilizza tag che riflettano chiaramente lo stato o il fine dell'immagine (ad esempio, beta, stable, prod).

3. Evita di usare latest in produzione

Il tag latest può essere utile per lo sviluppo e i test, ma in produzione è meglio utilizzare versioni specifiche per evitare modifiche imprevedibili.

4. Documenta l'utilizzo dei tag

Documenta come e per cosa vengono utilizzati i tag nel tuo progetto. Questo aiuterà il team a comprendere meglio il processo di versionamento e ridurrà la probabilità di errori.

Esempi di Dockerfile con utilizzo dei tag

Esempio 1: Creazione e assegnazione di tag

Dockerfile

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

Comandi per la build e il tagging

Terminal


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

Esempio 2: Aggiornamento dell'immagine e tagging

Dockerfile

# Dockerfile per la versione 1.1.0 con una nuova funzionalità
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"]

Comandi per la build e il tagging

Terminal

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