CodeGym /Cursos /Docker SELF /Etiquetas y versiones de imágenes

Etiquetas y versiones de imágenes

Docker SELF
Nivel 14 , Lección 2
Disponible

8.1 Etiquetado en Docker

El etiquetado en Docker es el proceso de asignar una etiqueta a una imagen, lo que facilita la gestión de versiones. Esto hace que el despliegue y la actualización de aplicaciones sean más convenientes y manejables. En esta lección, analizaremos en detalle qué son las etiquetas, cómo usarlas y qué recomendaciones te pueden ayudar a trabajar con ellas de manera más eficiente.

Etiqueta (tag) en Docker — una etiqueta que permite identificar una versión específica de una imagen. Las etiquetas hacen que sea más fácil rastrear cambios y elegir las versiones necesarias para diferentes entornos, como desarrollo, pruebas y producción.

Conceptos básicos de las etiquetas:

  1. Unicidad: una etiqueta identifica de forma única una versión específica de una imagen.
  2. Versionado: mediante etiquetas se designan versiones de imágenes, por ejemplo, v1.0, v2.0, latest.
  3. Flexibilidad: las etiquetas se usan para crear imágenes que correspondan a etapas específicas de desarrollo, como beta, stable, prod.

8.2 Cómo usar etiquetas

1. Asignar etiquetas al construir una imagen

Puedes asignar una etiqueta a una imagen al construirla usando el parámetro -t del comando docker build.

Ejemplo:

En este ejemplo, a la imagen se le asigna el nombre myapp y la etiqueta 1.0.

Terminal


docker build -t myapp:1.0 .

2. Asignar etiquetas adicionales a una imagen existente

Puedes agregar etiquetas a una imagen existente usando el comando docker tag.

Ejemplo:

Este ejemplo asigna a la imagen myapp:1.0 una etiqueta adicional latest.

Terminal


docker tag myapp:1.0 myapp:latest

3. Usar etiquetas al iniciar contenedores

Cuando inicias un contenedor, puedes especificar una etiqueta concreta de la imagen que quieras usar.

Ejemplo:

Este ejemplo inicia un contenedor basado en la imagen myapp con la etiqueta 1.0.

Terminal


docker run -d myapp:1.0

8.3 Práctica de etiquetado

Uso de versionamiento semántico

El versionamiento semántico (Semantic Versioning) es una práctica estándar de asignar versiones que ayuda a entender el nivel de cambios en la imagen.

Formato del versionamiento semántico:


<major>.<minor>.<patch>

Donde:

  • major: Cambios principales, incompatibles con versiones anteriores.
  • minor: Nuevas funcionalidades compatibles con versiones anteriores.
  • patch: Corrección de errores y otros cambios menores.

Ejemplo:

Terminal


docker build -t myapp:2.1.3 .

Uso de etiquetas adicionales

Las etiquetas adicionales ayudan a indicar el estado de la imagen, por ejemplo, beta, alpha, stable o prod.

Ejemplo:

Terminal


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

Actualización de etiquetas

Al actualizar una imagen, se recomienda cambiar las etiquetas para facilitar el seguimiento de los cambios. La etiqueta latest se usa frecuentemente para indicar la última versión de la imagen.

Ejemplo:

Terminal


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

8.4 Ejemplos de uso de tags

Ejemplos de cómo usar tags en diferentes entornos:

Ejemplo 1: Desarrollo

Para desarrollo, a menudo se utilizan imágenes con tags que indican la versión actual o el estado de desarrollo, por ejemplo, dev.

Terminal


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

Ejemplo 2: Pruebas

En entornos de pruebas se usan imágenes con tags que representan versiones específicas o estados, como beta.

Terminal


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

Ejemplo 3: Producción

En entornos de producción es importante usar versiones estables y verificadas de imágenes, marcadas con tags como stable, prod, o versiones semánticas como 1.1.0-stable.

Terminal


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

8.5 Mejores prácticas

1. Usar siempre versionado semántico

Sigue las reglas del versionado semántico para todas las imágenes. Esto ayuda a distinguir claramente los niveles de cambio y facilita la gestión de versiones.

2. Usar tags claros y significativos

Usa tags que reflejen claramente el estado o propósito de la imagen (por ejemplo, beta, stable, prod).

3. Evitar usar latest en producción

El tag latest puede ser útil para desarrollo y pruebas, pero en producción es mejor usar versiones específicas para evitar cambios inesperados.

4. Documentar el uso de los tags

Documenta cómo y para qué se usan los tags en tu proyecto. Esto ayudará al equipo a entender mejor el proceso de versionado y reducirá la posibilidad de errores.

Ejemplos de Dockerfile usando tags

Ejemplo 1: Crear y asignar tags

Dockerfile

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

Comandos para construir y asignar tags

Terminal


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

Ejemplo 2: Actualizar la imagen y asignar tags

Dockerfile

# Dockerfile para la versión 1.1.0 con nueva funcionalidad
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"]

Comandos para construir y asignar tags

Terminal

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